Azure クラスタのバージョンをアップグレードする

このページでは、GKE on Azure クラスタの Kubernetes バージョンをアップグレードする方法について説明します。

前提条件

クラスタの Kubernetes バージョンのアップグレードは、一般的なクラスタ更新オペレーションの特殊なケースです。クラスタ更新オペレーションの概要については、クラスタを更新するをご覧ください。クラスタのバージョンをアップグレードするには:

  • 現在のバージョンからターゲット バージョンまでのマイナー バージョンを順番にアップグレードしていく必要があります。たとえば、1.20 から 1.22 にアップグレードする場合は、まず 1.20 から 1.21 にアップグレードし、次に 1.21 から 1.22 にアップグレードします。
  • gkemulticloud.googleapis.com/azureClusters.update の Identity and Access Management 権限が必要です。

GKE on Azure が更新を行う仕組み

クラスタのアップグレードではコントロール プレーン ノードを再起動する必要があります。このため、GKE on Azure は次のようにローリング アップデートを実行します。

  1. 更新するコントロール プレーン インスタンスを 1 つ選択します。異常なインスタンスがある場合、GKE on Azure は、正常なインスタンスよりもそちらを先に更新します。
  2. インスタンスを削除します。GKE on Azure がインスタンスを再作成し、そのインスタンスが新しい構成で起動します。
  3. 新しいインスタンスにヘルスチェックを行います。
  4. ヘルスチェックが成功した場合は、別のインスタンスを選択して、同じ手順を繰り返します。すべてのインスタンスが再起動または再作成されるまで、このサイクルを繰り返します。ヘルスチェックが失敗した場合、GKE on Azure はクラスタを DEGRADED 状態にし、更新を停止します。詳しくは次のセクションをご覧ください。

更新に失敗した場合

更新後、GKE on Azure はクラスタでヘルスチェックを実行します。ヘルスチェックに失敗した場合は、クラスタが DEGRADED とマークされます。クラスタのステータスは、次の Google Cloud CLI コマンドで確認できます。

gcloud container azure clusters describe CLUSTER_NAME \
  --location=GOOGLE_CLOUD_LOCATION

次のように置き換えます。

  • CLUSTER_NAME: クラスタの名前
  • GOOGLE_CLOUD_LOCATION: クラスタを管理する Google Cloud リージョン

アップグレードを実行する

クラスタのバージョンを確認する

クラスタのバージョンをアップグレードする前に、次のコマンドを使用して、リージョンで使用可能なバージョンを確認します。

gcloud container azure get-server-config \
    --location=GOOGLE_CLOUD_LOCATION

GOOGLE_CLOUD_LOCATION は、クラスタを管理する Google Cloud のロケーションに置き換えます。

アップグレード方法を選択する

クラスタのバージョンは、Google Cloud コンソール、Google Cloud CLI、または GKE Multi-Cloud API を使用してアップグレードできます。コンソールを使用してクラスタをアップグレードする場合は、まず、クラスタにログインするための認証方法を選択して構成する必要があります。詳細については、クラスタに接続して認証するをご覧ください。

コンソール

  1. Google Cloud コンソールで、Google Kubernetes Engine クラスタの概要ページに移動します。

    GKE クラスタに移動

  2. クラスタが存在する Google Cloud プロジェクトを選択します。

  3. クラスタのリストでクラスタの名前を選択し、サイドパネルで [詳細を表示] を選択します。

  4. [詳細] タブで、[アップグレード] を選択します。

  5. [クラスタの Kubernetes バージョンのアップグレード] ダイアログ ボックスで、アップグレードするバージョンを選択して [完了] をクリックします。クラスタをアップグレードする場合は、すべてのマイナー バージョンをアップグレードする必要があります。

gcloud

クラスタの Kubernetes バージョンをアップグレードするには、次のコマンドを実行します。

gcloud container azure clusters update CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --cluster-version=CLUSTER_VERSION

次のように置き換えます。

API

API を使用してクラスタを更新するには、GKE Multi-Cloud API で PATCH オペレーションを使用します。

  1. cluster_update.json という名前の JSON ファイルを作成し、次の内容を追加します。

    {
        "controlPlane": {
           "version": "CLUSTER_VERSION",
        },
    }
    

    次のように置き換えます。

  2. 次のコマンドで GKE Multi-Cloud API を使用してこれらの設定を更新します。

    curl -d @cluster_update.json -X PATCH \
       ENDPOINT/projects/PROJECT_ID/locations/GOOGLE_CLOUD_LOCATION/azureClusters/CLUSTER_ID?update_mask=controlPlane.Version
    

次のように置き換えます。

詳細については、projects.locations.azureClusters.patch メソッドのドキュメントをご覧ください。

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

クラスタのバージョンをアップグレードしたら、ノードプールをアップグレードして処理を完了します。方法については、ノードプールを更新するをご覧ください。

次のステップ