ビュー:
プロファイル適用性: レベル1
Container-Optimized OS (cos_containerd) を使用して、ホストの攻撃領域を制限する管理された最適化された強化ベースOSとして利用します。
COSは、コンテナの実行に最適化されたCompute Engine VM用のOSイメージです。COSを使用すると、コンテナをGoogle Cloud Platform上で迅速かつ効率的で安全に起動できます。
COS をノードイメージとして使用すると、次のような利点があります。
  • コンテナをすぐに実行: COSインスタンスにはコンテナランタイムとcloud-initがプリインストールされています。COSインスタンスを使用すると、VMの作成と同時にコンテナを立ち上げることができ、ホスト上でのセットアップは不要です。
  • より小さい攻撃領域: COSはフットプリントが小さく、インスタンスの潜在的な攻撃領域を減少させます。
  • デフォルトでロックダウン: COSインスタンスには、デフォルトでロックダウンされたファイアウォールおよびその他のセキュリティ設定が含まれています。
注意
注意
コンテナ最適化OS with containerd (cos_containerd) (default) はクラスタノードイメージのデフォルトオプションです。

影響

既存のクラスターのノードプールをCOSで実行するように変更する場合、使用されるアップグレード操作は長時間実行され、完了するまでクラスター上の他の操作 (削除を含む) をブロックします。COSノードは、dockerの代わりにKubernetesと直接統合されたメインコンテナランタイムとしてcontainerdを使用するオプションも提供します。
したがって、これらのノードでは、DockerはKubernetesによって管理されているコンテナやイメージを表示またはアクセスすることができません。アプリケーションはDockerと直接やり取りしないでください。一般的なトラブルシューティングやデバッグには、代わりにcrictlを使用してください。

監査

Google Cloud Consoleを使用する:
  1. Google CloudコンソールKubernetes EngineページにアクセスしてKubernetes Engineに移動します。
  2. クラスターのリストから、テスト対象のクラスターを選択してください。
  3. ノードプールセクションで、各ノードプールのイメージタイプ列にContainer-Optimized OS (cos_containerd) が記載されていることを確認してください。
Command Lineを使用する:
既存のクラスターのノードプールのノードイメージタイプを確認するには、まずノードプール、クラスター名、ロケーション、プロジェクトの4つの変数を定義し、次のコマンドを実行します。
gcloud container node-pools describe $NODE_POOL --cluster $CLUSTER_NAME --location $LOCATION --project $PROJECT_ID --format json | jq '.config.imageType'
上記のコマンドの出力は、NodeイメージにCOS_CONTAINERDが使用されている場合、次の出力を返す必要があります。
"config": {
  ..
  "imageType": "COS_CONTAINERD",
  ..
}

修復

Google Cloud Consoleを使用する:
  1. Google CloudコンソールKubernetes EngineページにアクセスしてKubernetes Engineに移動します。
  2. COSを使用していないKubernetesクラスターを選択してください。
  3. Node poolsの見出しの下で、変更が必要なNode Poolを選択してください。
  4. 編集をクリック。
  5. イメージタイプの見出しの下にあるCHANGEをクリックします。
  6. ポップアップメニューからContainer-optimised OS with containerd (cos_containerd) (default)を選択し、変更をクリックします。
  7. すべての非準拠ノードプールに対して繰り返します。
コマンドラインの使用:
既存のクラスターのノードプールに対してノードイメージをcosに設定するには:
gcloud container clusters upgrade <cluster_name> --image-type cos_containerd --location <location> --node-pool <node_pool_name>