第5章 kubevirt-controller および virt-launcher に付与される追加のセキュリティー権限
kubevirt-controller
および virt-launcher Pod には、通常の Pod 所有者の権限に加えて一部の SELinux ポリシーおよび SCC (Security Context Constraints) 権限が付与されます。これらの権限により、仮想マシンは 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
) ファイルに書き込むことを許可します。これは SR-IOV (Single Root I/O Virtualization) を有効にするために必要です。 -
hugetlbfs
エントリーの読み取り/書き込みを実行します。これは、Huge Page をサポートするために必要です。Huge Page は、メモリーページサイズを増やすことで大量のメモリーを管理する方法です。