GKE ノードプールの自動修復設定の確認

GKE ノードの自動修復と障害監視を合わせて確認します。

説明

GKE ノードプールの自動修復が無効な場合、異常が続くノードの復旧に運用担当者の介入が必要となり、停止時間が長くなるおそれがあります。新しい Standard ノードプールではデフォルトで有効になり、Autopilot では常に有効です。

想定される影響

ノード障害が長引くと可用性が低下し、手動復旧の負担が増えます。自動修復もすべての障害を即座に解消するわけではなく、データのバックアップの代わりにはなりません。

対処方法

Standard ノードプールで management.auto_repair: true を設定してください。障害通知と手動対応手順を維持し、ノードの置き換えに耐えられるようワークロードを構成してください。セキュリティパッチのための自動アップグレードは別途管理してください。

例

ノードプール管理設定の抜粋です。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
    management:
      auto_repair: no

- name: create a node pool3
  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

最初のタスクは自動修復を無効にしています。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_repair: true

自動修復を明示的に有効にしています。修復はサービスのヘルスチェック基準に従って行われます。

参考資料