ノードプールをアップグレードする

このドキュメントでは、ユーザー クラスタ内のコントロール プレーンと選択したノードプールをアップグレードする方法について説明します。

選択したノードプールのアップグレードは、Ubuntu ノードプールと COS ノードプールではサポートされていますが、Windows ノードプールではサポートされていません。

状況によっては、ユーザー クラスタ内のすべてのノードプールではなく、一部のノードプールをアップグレードしたい場合があります。たとえば、最初にトラフィックが少ないノードプールか、重要度の低いワークロードを実行するノードプールをアップグレードできます。ワークロードが新しいバージョンで正しく実行されることを確認したら、最終的にすべてのノードプールがアップグレードされるまで、追加のノードプールをアップグレードできます。

管理ワークステーションをアップグレードする

管理ワークステーションをアップグレードのターゲット バージョンにアップグレードします。手順については、GKE on VMware のアップグレードをご覧ください。

新しい OS イメージを vSphere にインポートする

gkectl prepare を実行して OS イメージを vSphere にインポートします。

gkectl prepare \
    --bundle-path /var/lib/gke/bundles/gke-onprem-vsphere-TARGET_VERSION.tgz \
    --kubeconfig ADMIN_CLUSTER_KUBECONFIG

以下を置き換えます。

  • TARGET_VERSION: アップグレードのターゲット バージョン

  • ADMIN_CLUSTER_KUBECONFIG: 管理クラスタの kubeconfig ファイルのパス

利用可能なバージョンを確認する

次のコマンドを実行して、アップグレード可能なバージョンを確認します。

gkectl version --kubeconfig ADMIN_CLUSTER_KUBECONFIG

出力には、現在のバージョンとアップグレード可能なバージョンが表示されます。次に例を示します。

gkectl version: 1.14.0-gke.x

current admin cluster version: 1.13.1-gke.35

current user cluster versions:
- 1.13.1-gke.35

available admin cluster versions:
- 1.13.1-gke.35

available user cluster versions:
- 1.13.1-gke.35
- 1.14.0-gke.x

ユーザー クラスタ コントロール プレーンと選択したノードプールをアップグレードする

ユーザー クラスタの作成の手順を実行します。 ユーザー クラスタの構成ファイルで、gkeOnPremVersion をアップグレードのターゲット バージョンに設定します。アップグレードするノードプールごとに、nodePools.nodePool[i].gkeOnPremVersion フィールドを削除するか、空の文字列に設定します。 アップグレードしないノードプールごとに、nodePools.nodePool[i].gkeOnPremVersion を現在のバージョンに設定します。

たとえば、ユーザー クラスタがバージョン 1.13.1-gke.35 で、pool-1pool-2 の 2 つのノードプールがあるとします。また、コントロール プレーンと pool-1 を 1.14.0-gke.x にアップグレードするものの、pool-2 をバージョン 1.13.1-gke.35 のままにするとします。

ユーザー クラスタ構成ファイルの一部を次に示します。コントロール プレーンと pool-1 がバージョン 1.14.0-gke.x にアップグレードされるように指定していますが、pool-2 は現在のバージョン 1.13.1-gke.35 のままです。

gkeOnPremVersion: 1.14.0-gke.0

nodePools:
- name: pool-1
  gkeOnPremVersion: ""
  cpus: 4
  memoryMB: 8192
  replicas: 3
  osImageType: ubuntu_containerd
- name: pool-2
  gkeOnPremVersion: 1.13.1-gke.35
  cpus: 4
  memoryMB: 8192
  replicas: 5
  osImageType: ubuntu_containerd

ユーザー クラスタをアップグレードするの説明に沿って、アップグレードを続行します。

追加のノードプールをアップグレードする

すべてが pool-1 で正常に動作しており、pool-2 をアップグレードするとします。

ユーザー クラスタの構成ファイルの pool-2 で、gkeOnPremVersion を削除するか、空の文字列に設定します。

gkeOnPremVersion: 1.14.0-gke.0

nodePools:
- name: pool-1
  gkeOnPremVersion: ""
  cpus: 4
  memoryMB: 8192
  replicas: 3
  osImageType: ubuntu_containerd
- name: pool-2
  gkeOnPremVersion: ""
  cpus: 4
  memoryMB: 8192
  replicas: 5
  osImageType: ubuntu_containerd

gkectl update cluster を実行して変更を適用します。

gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
    --config USER_CLUSTER_CONFIG

以下を置き換えます。

  • ADMIN_CLUSTER_KUBECONFIG: 管理クラスタの kubeconfig ファイルのパス

  • USER_CLUSTER_CONFIG: ユーザー クラスタの構成ファイルのパス

トラブルシューティング

ノードプールのアップグレード後に問題が発生した場合は、以前のバージョンにロールバックできます。詳細については、アップグレード後のノードプールのロールバックをご覧ください。