2.4. 既知の問題


  • OpenShift Container クラスター内の hostPath ボリュームからマウントされたファイルまたはディレクトリーにアクセスすると、SELinux 拒否を受け取る場合があります。特権 Sandboxed Container は SELinux チェックを無効にしないため、特権 Sandboxed Container を実行している場合でも、このように拒否される可能性があります。

    ホストで SELinux ポリシーに従うことで、デフォルトでサンドボックス化されたワークロードからホストファイルシステムを完全に分離することが保証されます。これにより、virtiofsd デーモンまたは QEMU の潜在的なセキュリティー上の欠陥に対する保護も強化されます。

    マウントされたファイルまたはディレクトリーにホスト上の特定の SELinux 要件がない場合は、代わりにローカル永続ボリュームを使用できます。ファイルは、コンテナーランタイムの SELinux ポリシーに従って、自動的に container_file_t に再ラベル付けされます。ローカルボリュームを使用した永続ストレージ を参照してください。

    マウントされたファイルまたはディレクトリーがホスト上で特定の SELinux ラベルを持つことが予想される場合、自動再ラベル付けはオプションではありません。代わりに、ホストでカスタム SELinux ルールを設定して、virtiofsd デーモンがこれらの特定のラベルにアクセスできるようにすることができます。(KATA-469)

  • 一部の OpenShift Sandboxed Containers Operator Pod は、コンテナーの CPU リソース制限を使用して、Pod で使用可能な CPU の数を増やします。これらの Pod は、要求されたよりも少ない CPU を受け取る可能性があります。コンテナー内で機能が利用可能な場合は、oc rsh <pod> を使用して Pod にアクセスし、lscpu コマンドを実行することで、CPU リソースの問題を診断できます。

    $ lscpu

    出力例

    CPU(s):                          16
    On-line CPU(s) list:             0-12,14,15
    Off-line CPU(s) list:            13

    オフライン CPU のリストは、実行ごとに予期せず変更される可能性があります。

    回避策として、CPU 制限を設定するのではなく、Pod アノテーションを使用して追加の CPU をリクエストできます。Pod アノテーションを使用する CPU リクエストは、プロセッサーの割り当て方法が異なるため、この問題の影響を受けません。CPU 制限を設定するのではなく、Pod のメタデータに次のアノテーションを追加する必要があります。

    metadata:
      annotations:
        io.katacontainers.config.hypervisor.default_vcpus: "16"

    (KATA-1376)

  • コンテナーのセキュリティーコンテキストで SELinux Multi-Category Security (MCS) ラベルを設定すると、Pod が起動せず、Pod ログに次のエラーが表示されます。

    Error: CreateContainer failed: EACCES: Permission denied: unknown

    ランタイムは、Sandboxed Containers の作成時にコンテナーのセキュリティーコンテキストにアクセスできません。これは、virtiofsd が適切な SELinux ラベルで実行されず、コンテナーのホストファイルにアクセスできないことを意味します。その結果、MCS ラベルを利用してSandboxed Containers 内のファイルをコンテナーごとに分離できません。つまり、すべてのコンテナーがSandboxed Containers 内のすべてのファイルにアクセスできることになります。現在、この問題に対する回避策はありません。

    (KATA-1875)

  • OpenShift Sandboxed Containers の FIPS コンプライアンスは、kata ランタイムクラスにのみ適用されます。新しいピア Pod ランタイムクラス kata-remote-cc はまだ完全にはサポートされておらず、FIPS コンプライアンスについてはテストされていません。(KATA-2166)
  • --announce-submounts または --thread-pool-size のいずれかを含む io.katacontainers.config.hypervisor.virtio_fs_extra_args アノテーションを持つ Pod は起動しません。これは、OpenShift Container Platform 4.13 および 4.14 上の OpenShift Sandboxed Containers Operator によって使用される virtiofsd コンポーネントの回帰です。OpenShift Container Platform 4.12 および 4.11 は影響を受けません。(KATA-2146)
  • 一時メモリーボリュームの sizeLimit オプションは、OpenShift Sandboxed Containers では機能しません。一時ボリュームサイズのデフォルトは、サンドボックスコンテナーに割り当てられたメモリーの 50% です。ボリュームを再マウントすることで、このボリュームのサイズを手動で変更できます。たとえば、サンドボックスコンテナーに割り当てられたメモリーが 6 GB で、一時ボリュームが /var/lib/containers にマウントされている場合は、次のコマンドを使用して、このボリュームのサイズを仮想マシンメモリーのデフォルトの 50% を超えて増やすことができます。。

    $ mount -o remount,size=4G /var/lib/containers

    (KATA-2579)

  • io.katacontainers.config.hypervisor.default_vcpus アノテーションおよび io.katacontainers.config.hypervisor.default_memory アノテーションは QEMU のセマンティクスに従いますが、ピア Pod には次の制限があります。

    • io.katacontainers.config.hypervisor.default_memory アノテーションの値を 256 未満に設定すると、次のエラーが発生します。

      Failed to create pod sandbox: rpc error: code = Unknown desc = CreateContainer failed: Memory specified in annotation io.katacontainers.config.hypervisor.default_memory is less than minimum required 256, please specify a larger value: unknown
    • io.katacontainers.config.hypervisor.default_memory: 256 アノテーションおよび io.katacontainers.config.hypervisor.default_vcpus: 1 アノテーションを使用する場合は、リストから最小のインスタンスが起動されます。
    • io.katacontainers.config.hypervisor.default_vcpus: 0 アノテーションを使用する場合は、すべてのアノテーションが無視され、デフォルトのインスタンスが起動します。

    代わりに、柔軟な Pod VM サイズには io.katacontainers.config.hypervisor.machine_type: <instance type/instance size> アノテーションを使用することが推奨されます。(KATA-2575KATA-2577KATA-2578)

  • OpenShift Sandboxed Containers Operator 1.4.1 からバージョン 1.5 への自動アップグレード中に、アップグレードが pending 状態でスタックします。

    サブスクリプションが自動更新に設定されていると、OpenShift Sandboxed Containers のアップグレードがインストールされます。ただし、KataConfig CR (カスタムリソース) がインストールされている場合、CSV は pending 状態のままになります。

    次のコマンドを実行して、Subscription オブジェクトのステータスを確認できます。

    $ oc get sub osc-operator -n openshift-osc-operator -o yaml

    次のエラーが、Subscription オブジェクトの status セクションと、アップグレードの InstallPlan オブジェクトの status セクションに表示されます。

    message: 'error validating existing CRs against new CRD''s schema for "kataconfigs.kataconfiguration.openshift.io":
          error validating custom resource against new schema for KataConfig /example-kataconfig:
          [].status.runtimeClass: Invalid value: "string": status.runtimeClass in body
          must be of type array: "string"'

    このエラーが発生した場合は、OpenShift Sandboxed Containers Operator をアンインストールしてから再インストールする必要があります。

    1. kata ランタイムまたは kata-remote ランタイムで実行しているワークロード (Pod、デプロイメント、デーモンセット) をすべて削除します。これらのワークロードは、再インストール後に再作成する必要があります。ワークロードの削除の詳細は、CLI を使用した OpenShift Sandboxed Containers Pod の削除 を参照してください。
    2. KataConfig CR を削除します。CLI を使用した KataConfig カスタムリソースの削除 を参照してください。

      重要

      ワークロードが実行中の場合は、KataConfig CR を削除しないでください。

      次のコマンドを使用して、KataConfig CR の削除ステータスを確認できます。

      $ oc get kataconfig -n openshift-osc-operator
    3. Operator をアンインストールします。CLI を使用したSandboxed Containers Operator のインストール を参照してください。
    4. OpenShift Sandboxed Containers Operator を再インストールします。CLI を使用したSandboxed Containers Operator のインストール を参照してください。

      OpenShift Sandboxed Containers Operator の再インストールはバージョン 1.5.0 をインストールします。

    5. KataConfig CR を作成します。CLI を使用した KataConfig カスタムリソースの作成 を参照してください。
    6. ワークロードを再作成します。CLI を使用した Sandboxed Containers へのワークロードのデプロイ を参照してください。
    注記

    サブスクリプションを手動更新に設定している場合は、OpenShift Sandboxed Containers Operator 1.5.1 が利用可能になるまでアップグレードを承認しないでください。

    (KATA-2593)

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.