GKE ノードイメージの選択の確認

ワークロードに適したサポート対象のイメージを選び、ノード OS の更新を管理してください。

説明

Container-Optimized OS は、GKE の Linux コンテナーで推奨される既定のイメージです。ただし、Ubuntu の機能や Windows コンテナーが必要なワークロードには、それぞれのサポート対象イメージが適しています。COS 以外という理由だけで危険とは限りません。

想定される影響

  • サポート対象外または管理されていないイメージでは、セキュリティ修正の欠落や運用の不整合が生じる場合があります。
  • ワークロードに対応しない OS に変更すると、コンテナーが動作しなくなる場合があります。

対処方法

  • 一般的な Linux ワークロードでは COS_CONTAINERD を検討し、Ubuntu や Windows が必要なら対応する containerd イメージを選んでください。
  • ノードの更新とアプリケーションの互換性をテストしてください。OS を変更する場合は互換性のある新しいノードプールに移行し、Windows コンテナーをそのまま Linux ノードへ移さないでください。

例

イメージ選択を比較する抜粋です。var.project_id とクラスターのロケーションを実環境に合わせ、イメージが対応するマシンタイプなど必要なノード設定を別途用意してください。異なる OS 向けの例であり、既存 Windows プールを単純に変更する手順ではありません。

変更前

hcl
resource "google_container_node_pool" "example" {
  project = var.project_id
  name    = "primary-pool"
  location = "us-west1"
  cluster = google_container_cluster.example.name

  node_config {
    image_type = "WINDOWS_LTSC_CONTAINERD"
  }
}

変更後

hcl
resource "google_container_node_pool" "example" {
  project = var.project_id
  name    = "primary-pool"
  location = "us-west1"
  cluster = google_container_cluster.example.name

  node_config {
    image_type = "COS_CONTAINERD"
  }
}

補足:

  • 変更前: Windows コンテナー用のサポート対象イメージを選択します。Windows が必要なワークロードには適した選択です。
  • 変更後: Linux コンテナー用に Container-Optimized OS を選択します。Linux と互換性のあるワークロードが必要です。

参考資料