GKE ノードの自動アップグレード設定の確認

GKE ノードの自動アップグレードとセキュリティ更新の予定を確認します。

説明

GKE ノードの自動アップグレードを無効にすると、適時にバージョンを更新する運用担当者の責任が増えます。手動更新が遅れると、既知の脆弱性を含むノードバージョンが残るおそれがあります。

想定される影響

パッチの遅延やノードプール間のバージョン差により、セキュリティリスクと運用負担が増えます。自動アップグレードを無効にしても、コントロールプレーンの更新やすべてのメンテナンスが停止するわけではありません。サポートが終了したノードバージョンは、サービスによって更新される場合があります。

対処方法

management.auto_upgrade: yes を設定し、メンテナンス時間とワークロードで許容できる中断を計画してください。手動管理を選ぶ場合は、サポート期間内の定期更新予定と検証手順を維持してください。自動修復は別の機能です。

例

ノードプールのアップグレード設定の抜粋です。準備済みの cluster リソース、プロジェクト、保護されたサービスアカウントの JSON ファイルのパスを指定してください。

変更前

yaml
- name: create a node pool
  google.cloud.gcp_container_node_pool:
    name: my-pool
    initial_node_count: 4
    cluster: "{{ cluster }}"
    location: us-central1-a
    project: "{{ gcp_project }}"
    auth_kind: serviceaccount
    service_account_file: "{{ gcp_service_account_file }}"
    state: present

- name: create a third node pool
  google.cloud.gcp_container_node_pool:
    name: my-pool
    initial_node_count: 4
    cluster: "{{ cluster }}"
    location: us-central1-a
    project: "{{ gcp_project }}"
    auth_kind: serviceaccount
    service_account_file: "{{ gcp_service_account_file }}"
    state: present
    management:
      auto_repair: yes
      auto_upgrade: no

最初のタスクは管理設定を省略しているため、実際の自動アップグレード状態を確認する必要があります。2 番目は自動修復を有効にし、自動アップグレードを無効にしています。

変更後

yaml
- name: create a node pool
  google.cloud.gcp_container_node_pool:
    name: my-pool
    initial_node_count: 4
    cluster: "{{ cluster }}"
    location: us-central1-a
    project: "{{ gcp_project }}"
    auth_kind: serviceaccount
    service_account_file: "{{ gcp_service_account_file }}"
    state: present
    management:
      auto_upgrade: yes

自動アップグレードを有効にしています。実施時期とノード置き換えの影響は、クラスターのポリシーやメンテナンス設定と合わせて管理してください。

参考資料