第 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 条目,巨页需要它。巨页是通过增加内存页大小来管理大量内存的方法。