8.2. kubevirt-controller 服务帐户的其他 OpenShift Container Platform 安全性上下文约束和 Linux 功能
Pod 的安全上下文约束(SCC)控制权限。这些权限包括 Pod(容器集合)可以执行的操作以及它们可以访问的资源。您可以使用 SCC 定义 Pod 运行必须满足的一组条件,以便其能被系统接受。
virt-controller
是一个集群控制器,可为集群中的虚拟机创建 virt-launcher
pod。这些 pod 由 kubevirt-controller
服务帐户授予权限。
kubevirt-controller
服务帐户被授予额外的 SCC 和 Linux 功能,以便能够创建具有适当权限的 virt-launcher
Pod。这些扩展权限允许虚拟机使用超出典型 pod 范围的 OpenShift Virtualization 功能。
kubevirt-controller
服务帐户被授予以下 SCC:
-
scc.AllowHostDirVolumePlugin = true
这允许虚拟机使用 hostpath 卷插件。 -
scc.AllowPrivilegedContainer = false
可确保 virt-launcher pod 不是作为特权容器运行。 scc.AllowedCapabilities = []corev1.Capability{"SYS_NICE", "NET_BIND_SERVICE"}
-
SYS_NICE
允许设置 CPU 关联性。 -
NET_BIND_SERVICE
允许 DHCP 和 Slirp 操作。
-
8.2.1. 查看 kubevirt-controller 的 SCC 和 RBAC 定义
您可以使用 oc
工具查看 kubevirt-controller
的 SecurityContextConstraints
定义:
$ oc get scc kubevirt-controller -o yaml
您可以使用 oc
工具查看 kubevirt-controller
clusterrole 的 RBAC 定义:
$ oc get clusterrole kubevirt-controller -o yaml