1.3.12. Nodes
- マルチテナントクラスターにおけるイメージプル認証情報の検証
今回のアップデートにより、管理者は
KubeletConfigカスタムリソースのimagePullCredentialsVerificationPolicyパラメーターを使用して、キャッシュされたイメージの認証情報検証を強制できるようになります。このパラメーターにより、kubelet は Pod をデプロイする前にコンテナーレジストリーで再認証を行うようになり、要求元の名前空間がイメージへの有効なアクセス権限を持っていることが保証されます。基盤となる
KubeletEnsureSecretPulledImagesフィーチャーゲートは、デフォルトで有効になっています。管理者は、セキュリティーと安定性のバランスを取るために、特定の認証情報プロバイダーポリシーを設定できます。-
AlwaysVerify: すべてのイメージプルリクエストに対して認証情報チェックを強制します。 NeverVerifyAllowlistedImages: 許可リストに登録されている重要なインフラストラクチャーイメージを除外しつつ、ユーザーワークロードに対して認証情報チェックを強制します。今回のアップデート以前は、マルチテナントの OpenShift Container Platform クラスターにおいて、kubelet がキャッシュされたイメージの認証情報を再検証しないというセキュリティー上の脆弱性が存在していました。あるテナントがプライベートイメージをプルした場合、別のテナントはイメージプルシークレットを提供することなく、同じキャッシュを使用して Pod をデプロイできる可能性があります。以前は、この問題を軽減するために、管理者はサポートされていない設定に頼っていました。しかし、これらの回避策はクラスターの不安定性を引き起こし、レジストリーの停止中にコントロールプレーンの障害が発生するリスクを高め、重要なクラスターのアップグレードを阻害した。
注記デフォルトの
KubeletEnsureSecretPulledImagesフィーチャーゲートが有効な場合は、NeverVerifyPreloadedImagesポリシーを使用しないでください。ポリシーが期待どおりに機能しない可能性があります。代わりにNeverVerifyAllowlistedImagesポリシーを使用してください。詳細は、kubelet パラメーターを編集するための KubeletConfig CRD の作成を 参照してください。
-
- CPU リソースの強制適用がデフォルトで有効になりました
今回のアップデートにより、予約済み CPU 機能を使用しないすべてのクラスターで、
system-reserved-compressibleパラメーターが有効になります。これは、システムが予約した CPU が希望する制限を超えてしまうという以前の問題を解決するものです。このデフォルト値は、kubelet 設定でsystemReservedCPU: ""パラメーターを設定することで上書きできます。詳細は、OpenShift Container Platform がシステム予約済み CPU をどのように強制するかを 参照してください。
- OCI イメージを Pod にマウントする
今回のアップデートにより、イメージボリュームを使用して、Open Container Initiative (OCI) 準拠のアーティファクトを Pod に直接マウントできるようになりました。OCI アーティファクトを使用すると、ユーザーは OCI 準拠のコンテナーレジストリーを使用して、任意のファイルとメタデータを保存および配布できます。
詳細は、OCI イメージとアーティファクトを Pod にマウントするを 参照してください。
- CRI-O アーティファクトの設定可能な保管場所
今回のアップデートにより、CRI-O にデフォルト以外のアーティファクト保存場所を追加で作成し、Pod がそこからデータを取得できるようになります。CRI-O コンテナーエンジンのストレージ場所を、OCI アーティファクト、完全なコンテナーイメージ、またはコンテナーイメージレイヤーのデフォルト以外の場所に使用することで、アプリケーションの起動時間を短縮し、アプリケーションをより効率的に実行できます。
詳細は、コンテナーの起動を高速化するための追加の CRI-O ストレージ場所 を参照してください。
- ミラーリングされたレジストリー向けのプロジェクトスコープイメージプルシークレット (テクノロジープレビュー)
今回のアップデートにより、プロジェクトスコープのプルシークレットを使用して、ミラーリングされたレジストリーからイメージをプルできるようになりました (これはテクノロジープレビュー機能です)。このアップデート以前は、ミラーリングされたレジストリーからプルする際にノードレベルのシークレットを使用する必要がありました。これは、kublet がコンテナーランタイムレベルで設定されるミラー設定を認識しなかったためです。
詳細は、ミラーリングされたレジストリーのプロジェクトスコープのイメージプルシークレットの設定を 参照してください。
- パーティション分割可能なデバイスが、動的リソース割り当てに対応しました (テクノロジープレビュー)。
今回のアップデートにより、動的リソース割り当て機能は、ワークロードの要求に基づいて、物理ハードウェアをより小さな論理インスタンス (マルチインスタンス GPU など) に分割することをサポートします。このテクノロジープレビュー機能を使用すると、複数の Pod 間で GPU を安全かつ効率的に共有できます。
詳細は、DRA を使用して Pod に GPU を割り当てるを 参照してください。