This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.1.4. 既知の問題
OpenShift サンドボックスコンテナーを使用している場合、OpenShift Container Platform クラスターの
hostPathボリュームからマウントされたファイルまたはディレクトリーにアクセスすると、SELinux 拒否を受け取ることがあります。特権 Sandboxed Container は SELinux チェックを無効にしないため、特権 Sandboxed Container を実行している場合でも、このように拒否される可能性があります。ホストで SELinux ポリシーに準拠すると、ホストファイルシステムとサンドボックスのワークロードを完全に分離して、
virtiofsdデーモンまたは QEMU で発生する可能性のあるセキュリティーの脆弱性に対してより強力に保護します。マウントされたファイルまたはディレクトリーにホスト上の特定の SELinux 要件がない場合は、代わりにローカル永続ボリュームを使用できます。ファイルは、コンテナーランタイムの SELinux ポリシーに従って、自動的に
container_file_tに再ラベル付けされます。詳細は ローカルボリュームを使用した永続ストレージ を参照してください。マウントされたファイルまたはディレクトリーがホスト上で特定の SELinux ラベルを持つことが予想される場合、自動再ラベル付けはオプションではありません。代わりに、ホストでカスタム SELinux ルールを設定して、
virtiofsdデーモンがこれらの特定のラベルにアクセスできるようにすることができます。(BZ#1904609)Machine Config Operator (MCO) Pod が
CrashLoopBackOff状態に遷移し、Pod のopenshift.io/sccアノテーションにデフォルト値のhostmount-anyuidではなくsandboxed-containers-operator-sccが表示される問題が発生する可能性があります。この場合は、
sandboxed-containers-operator-sccSCC のseLinuxOptionsストラテジーを一時的に制限の少ないRunAsAnyに変更し、承認プロセスがhostmount-anyuidSCC よりも優先しないようにします。以下のコマンドを実行して
seLinuxOptionsストラテジーを変更します。oc patch scc sandboxed-containers-operator-scc --type=merge --patch '{"seLinuxContext":{"type": "RunAsAny"}}'$ oc patch scc sandboxed-containers-operator-scc --type=merge --patch '{"seLinuxContext":{"type": "RunAsAny"}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して MCO Pod を再起動します。
oc scale deployments/machine-config-operator -n openshift-machine-config-operator --replicas=0
$ oc scale deployments/machine-config-operator -n openshift-machine-config-operator --replicas=0Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc scale deployments/machine-config-operator -n openshift-machine-config-operator --replicas=1
$ oc scale deployments/machine-config-operator -n openshift-machine-config-operator --replicas=1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、
sandboxed-containers-operator-sccのseLinuxOptionsストラテジーをMustRunAsの元の値に戻します。oc patch scc sandboxed-containers-operator-scc --type=merge --patch '{"seLinuxContext":{"type": "MustRunAs"}}'$ oc patch scc sandboxed-containers-operator-scc --type=merge --patch '{"seLinuxContext":{"type": "MustRunAs"}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、
hostmount-anyuidSCC が MCO Pod に適用されていることを確認します。oc get pods -n openshift-machine-config-operator -l k8s-app=machine-config-operator -o yaml | grep scc openshift.io/scc: hostmount-anyuid
$ oc get pods -n openshift-machine-config-operator -l k8s-app=machine-config-operator -o yaml | grep scc openshift.io/scc: hostmount-anyuidCopy to Clipboard Copied! Toggle word wrap Toggle overflow
OpenShift サンドボックスコンテナー Operator Pod が、コンテナー CPU リソースの制限を使用して、Pod に利用できる CPU の数量を増やした場合に、CPU の数が要求した数よりも少なくなる可能性があります。機能がコンテナー内で使用可能な場合、
oc rsh <pod>を使用してlscpuコマンドを実行して、CPU リソースを診断できます。lscpu
$ lscpuCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
CPU(s): 16 On-line CPU(s) list: 0-12,14,15 Off-line CPU(s) list: 13
CPU(s): 16 On-line CPU(s) list: 0-12,14,15 Off-line CPU(s) list: 13Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用可能なオフライン CPU のリストは実行ごとに変更され、予測できません。
回避策として、CPU 制限を設定するのではなく、Pod アノテーションを使用して追加の CPU をリクエストできます。プロセッサーの割り当て方法が異なるので、Pod アノテーションで要求された CPU はこの問題の影響を受けません。CPU 制限を設定するのではなく、Pod のメタデータに次の
annotationを追加する必要があります。metadata: annotations: io.katacontainers.config.hypervisor.default_vcpus: "16"metadata: annotations: io.katacontainers.config.hypervisor.default_vcpus: "16"Copy to Clipboard Copied! Toggle word wrap Toggle overflow ランタイムインストールの進行状況は、
kataConfigCR のstatusセクションに表示されます。ただし、次の条件がすべて当てはまる場合、進行状況は表示されません。-
クラスターには、メンバーのないマシン設定プール
ワーカーがあります (machinecount=0)。 -
インストールするノードを選択するための
kataConfigPoolSelectorが指定されていません。
この場合、ノードがマスターロールとワーカーロールの両方を持つコンバージドクラスターであると Operator が想定するため、マスターノードでインストールが開始されます。
kataConfigCR のstatusセクションは、インストール中に更新されません。(KATA-1017)-
クラスターには、メンバーのないマシン設定プール
-
KataConfigCR を作成し、openshift-sandboxed-containers-operatornamespace で Pod のステータスを確認すると、モニター Pod が何度も再起動されていることが分かります。モニター Pod は、sandboxed-containers拡張機能のインストールの一部としてインストールされる特定の SELinux ポリシーを使用します。モニター Pod はすぐに作成されますが、SELinux ポリシーはまだ利用できないため、Pod 作成エラーが発生し、Pod が再起動されます。拡張機能が正常にインストールされると、SELinux ポリシーが使用可能になり、モニター Pod はRunning状態に移行します。これは、OpenShift サンドボックスコンテナーの Operator 機能には影響しません。(KATA-1338)