Share via


Azure Kubernetes Service (AKS) クラスターのアップグレード

適用対象: Azure Stack HCI バージョン 23H2

アプリケーションとクラスターのライフサイクルの管理の一環として、利用可能な最新バージョンの Kubernetes にアップグレードすることをお勧めします。 アップグレードには、新しいバージョンの Kubernetes への移行、オペレーティング システム (OS) バージョンの更新プログラムの適用 (修正プログラムの適用)、またはその両方が含まれます。 AKS Arc では、最新の OS とランタイム更新プログラムを使用したワークロード クラスター内のノードのアップグレード (または修正プログラムの適用) がサポートされています。

すべてのアップグレードは、ワークロードの中断のない可用性を確保するために、継続的かつローリングな方法で実行されます。 新しいビルドを持つ新しい Kubernetes ワーカー ノードがクラスターに取り込まれると、リソースは古いノードから 新しい ノードに移動されます。 これが正常に完了すると、古いノードは使用停止になり、クラスターから削除されます。

開始する前に

Azure CLI を使用している場合、この記事では Azure CLI バージョン 2.34.1 以降が必要です。 バージョンを確認するには、az --version を実行します。 CLI をインストールまたはアップグレードする必要がある場合は、「 Azure CLI のインストール」を参照してください。

利用可能なアップグレードを確認する

次のコマンドを使用して、クラスターで使用できる Kubernetes リリースを確認します。

az aksarc get-upgrades --resource-group myResourceGroup --name myAKSCluster

次の出力例は、現在のバージョン を 1.24.11 として示し、 の下 upgradesの使用可能なバージョンを一覧表示します。

{  
  "agentPoolProfiles": [  
    {  
      "kubernetesVersion": "1.24.11",  
      "upgrades": [  
        {  
          "kubernetesVersion": "1.25.7"  
        }  
      ]  
    }  
  ],  
  "controlPlaneProfile": {  
    "kubernetesVersion": "1.24.11",  
    "name": "aksarc-testupgrade",  
    "osType": "Linux",  
    "upgrades": [  
      {  
        "kubernetesVersion": "1.25.7"  
      }  
    ]  
  },  
  ...  
  "provisioningState": "Succeeded",  
  ...  
}

Kubernetes バージョンのアップグレード

サポートされている AKS クラスターをアップグレードする場合、Kubernetes のマイナー バージョンをスキップすることはできません。 すべてのアップグレードは、メジャー バージョン番号の順番に実行する必要があります。 たとえば、1.24.x から 1.25.x または 1.25.x から 1.26.x へのアップグレードが許可されます。 1.24.x から 1.26.x は許可されません。

注意

パッチが指定されていない場合、クラスターは指定されたマイナー バージョンの最新 GA パッチに自動的にアップグレードされます。 たとえば、 を 1.25 に設定--kubernetes-versionすると、クラスターは 1.25.7 にアップグレードされます。

次のコマンドを使用して、クラスターをアップグレードできます。

az aksarc upgrade \
  --resource-group myResourceGroup \
  --name myAKSCluster \
  --kubernetes-version <KUBERNETES_VERSION>

コマンドを使用 show して、アップグレードが成功したことを確認します。

az aksarc show --resource-group myResourceGroup --name myAKSCluster

次の出力例は、クラスターが 1.25.7 を実行していることを示しています。

{  
"extendedLocation": {  
  "name":
"/subscriptions/<subscription>/resourcegroups/<resource group>/providers/microsoft.extendedlocation/customlocations/<custom
location>",  
  "type": "CustomLocation"  
},  
"id": "/subscriptions/<subscription>/resourceGroups/<resource group>/providers/Microsoft.Kubernetes/connectedClusters/aksarc-testupgrade/providers/Microsoft.HybridContainerService/provisionedClusterInstances/default",  
"name": "default",  
"properties": {  
  "agentPoolProfiles": [  
    {  
    }  
  ],  
  "controlPlane": {  
    "availabilityZones": null,  
    "controlPlaneEndpoint": {  
      "hostIp": null,  
      "port": null  
    },  
    "count": 1,  
    "linuxProfile": {  
      "ssh": {  
        "publicKeys": null  
      }  
    },  
    "name": null,  
    "nodeImageVersion": null,  
    "osSku": "CBLMariner",  
    "osType": "Linux",  
    "vmSize": "Standard_A4_v2"  
  },  
  "kubernetesVersion": "1.25.7",  
...  
  "provisioningState": "Succeeded",  
  ...  
},  
....  
"type": "microsoft.hybridcontainerservice/provisionedclusterinstances"  
}

重要

2 つ以上のマイナー バージョンをスキップするサポートされていないバージョンからアップグレードを実行する場合、アップグレードでは適切な機能を保証できません。 バージョンが大幅に古い場合は、代わりにクラスターを再作成することをお勧めします。

アップグレード操作中に、 と currentState の両方provisioningStateのインジケーターに、進行中のプロセスを反映するアップグレード メッセージが表示されます。 ただし、操作がタイムアウトした場合は、 provisioningState失敗と表示され currentState 、アップグレードがバックグラウンドで続行されると、 き続きアップグレードが表示されます。 アクションは必要ありません。アップグレードは完了するまで続行されます。

オペレーティング システム (OS) のバージョンを更新する

Kubernetes のバージョンを変更せずにワーカー ノードを新しいバージョンのノード イメージに更新することは、新しいイメージに別の Kubernetes バージョンが必要ない場合にのみ機能します。 現在、AKS Arc では、サポートされているすべての Kubernetes バージョンでノード イメージのみの更新はサポートされていません。 ノード イメージを更新する必要がある場合は、すべてのノード イメージの更新プログラムが確実に組み込まれるように、クラスターを最新の Kubernetes バージョンにアップグレードする必要があります。

重要

フラグを使用 node-image-only しようとすると、この機能がまだサポートされていないことを示すメッセージが表示されます。

次の手順