第 5 章 为 kubevirt-controller 和 virt-launcher 授予额外的安全权限
kubevirt-controller
和 virt-launcher pod 会被授予一些 SELinux 策略和安全上下文约束(除了典型的 pod 拥有者之外)的权限。这些权限可让虚拟机使用 OpenShift Virtualization 功能。
5.1. 为 virt-launcher pod 扩展 SELinux 策略
virt-launcher Pod 的 container_t
SELinux 策略会根据以下规则扩展:
-
allow process self (tun_socket (relabelfrom relabelto attach_queue))
-
allow process sysfs_t (file (write))
-
allow process hugetlbfs_t (dir (add_name create write remove_name rmdir setattr))
-
allow process hugetlbfs_t (file (create unlink))
这些规则启用以下虚拟化功能:
- 将队列重新标记并把队列附加到其自身的 TUN 插槽,这是支持网络多队列所必需的。多队列可使用网络性能随着 vCPU 数量的增加而扩展网。
-
允许 virt-launcher Pod 将信息写入 sysfs(
/sys
)文件,该文件是启用单根 I/O 虚拟化(SR-IOV)所需要的。 -
Read/write
hugetlbfs
条目,巨页需要它。巨页是通过增加内存页大小来管理大量内存的方法。