7.3. kubevirt-controller サービスアカウントの追加の OpenShift Container Platform SCC (Security Context Constraints) および Linux 機能
SCC (Security Context Constraints) は Pod のパーミッションを制御します。これらのパーミッションには、コンテナーのコレクションである Pod が実行できるアクションおよびそれがアクセスできるリソース情報が含まれます。SCC を使用して、Pod がシステムに受け入れられるために必要な 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_PTRACE"}
-
SYS_NICE
を使用すると、CPU アフィニティーを設定できます。 -
NET_BIND_SERVICE
は、DHCP および Slirp 操作を許可します。 -
SYS_PTRACE
を使用すると、特定バージョンのlibvirt
で、ソフトウェア Trusted Platform Module (TPM) エミュレーターであるswtpm
のプロセス ID (PID) を見つけることができます。
-
7.3.1. kubevirt-controller の SCC および RBAC 定義の表示
oc
ツールを使用して kubevirt-controller
の SecurityContextConstraints
定義を表示できます。
$ oc get scc kubevirt-controller -o yaml
oc
ツールを使用して kubevirt-controller
クラスターロールの RBAC 定義を表示できます。
$ oc get clusterrole kubevirt-controller -o yaml