チュートリアル: Azure Arc で有効になっている AKS の Kubernetes をアップグレードする
適用対象: AKS on Azure Stack HCI 22H2、Windows Server 上の AKS
アプリケーションとクラスターのライフサイクルの管理の一環として、Azure Arc で有効になっている AKS を使用している場合は、使用可能な最新バージョンの Kubernetes にアップグレードすることをお勧めします。
このチュートリアル (パート 7/7) では、Kubernetes クラスターをアップグレードする方法について説明します。 学習内容は次のとおりです。
- 現在の使用可能な Kubernetes バージョンを識別する
- Kubernetes ノードの Kubernetes バージョンをアップグレードする
- Kubernetes ノードの OS バージョンをアップグレードする
- Kubernetes クラスターを最新バージョンにアップグレードする
- 正常なアップグレードを検証する
- Kubernetes クラスターを削除する
どのような更新オプションを使用できますか。
更新にはいくつかの種類があり、相互に独立して、またサポートされている特定の組み合わせによって発生することがあります。
- AKS ホスト を最新バージョンに更新します。
- AKS ワークロード クラスターを新しい Kubernetes バージョンに更新します。
- AKS コンテナー ホストを新しいバージョンのオペレーティング システムに更新します。
- オペレーティング システムと Kubernetes バージョンの組み合わせによる更新。
すべての更新は、ワークロードの可用性の停止を回避するために、ローリング フローで実行されます。 新しいビルドを持つ新しい Kubernetes ワーカー ノードがクラスターに取り込まれると、リソースは古いノードから 新しい ノードに移動されます。 これが正常に完了すると、古いノードは使用停止になり、クラスターから削除されます。
このチュートリアルの例では、ワークロード クラスター mycluster
が現在 Kubernetes バージョン 1.18.8 にあり、30 日よりも前のバージョンのオペレーティング システムがあることを前提としています。
開始する前に
前のチュートリアルでは、アプリケーションをコンテナー イメージにパッケージ化し、Azure Container Registry にアップロードして、Kubernetes クラスターを作成する方法について学習しました。 次に、アプリケーションをクラスターにデプロイしました。 これらの手順を完了していない場合は、「チュートリアル 1 – コンテナー イメージの作成」 から始めてください。
ワークロード クラスターの Kubernetes バージョンを更新する
Kubernetes のバージョンを更新する前に、まず PowerShell モジュールと AKS ホストをアップグレードする必要があります。
重要
ワークロード クラスターを新しいバージョンの Kubernetes に更新することは、ターゲットの Kubernetes バージョンが現在のオペレーティング システムのバージョンでサポートされている場合にのみ機能します。 サポートされているオペレーティング システムと Kubernetes のバージョンの組み合わせを確認するには、Get-AksHciUpdates
コマンドを使用します。
Kubernetes のバージョンを更新するには、次の手順を実行します。
ワークロード クラスターの現在のバージョンを取得するには、次のコマンドを実行します。
Get-AksHciCluster
ProvisioningState : provisioned KubernetesVersion : v1.20.7 NodePools : linuxnodepool WindowsNodeCount : 0 LinuxNodeCount : 0 ControlPlaneNodeCount : 1 Name : mycluster
使用可能な Kubernetes バージョンの一覧を表示するには、次のコマンドを実行します。
Get-AksHciKubernetesVersion
OrchestratorType OrchestratorVersion OS IsPreview ---------------- ------------------- -- --------- Kubernetes v1.19.9 Linux False Kubernetes v1.19.11 Linux False Kubernetes v1.20.5 Linux False Kubernetes v1.20.7 Linux False Kubernetes v1.21.1 Linux False Kubernetes v1.19.9 Windows False Kubernetes v1.19.11 Windows False Kubernetes v1.20.5 Windows False Kubernetes v1.20.7 Windows False Kubernetes v1.21.1 Windows False
出力には、バージョンが使用可能な Kubernetes のバージョンとオペレーティング システムが表示されます。 使用可能なアップグレード バージョンが増えることを確認できます。 ただし、クラスターをアップグレードする場合、バージョンをスキップすることはできません。 たとえば、v1.18.xx --> v1.19.xx は可能ですが、v1.18.xx --> v1.20.x は可能ではありません。
Kubernetes バージョンの更新を開始する
Kubernetes のバージョンを更新するには、次のコマンドを実行します。
Update-AksHciCluster -name mycluster -kubernetesVersion v1.21.1
Note
このコマンドでは、
mycluster
ワークロードクラスター内の既存のクラスター ノードのみが新しいバージョンの Kubernetes に更新されます。
オペレーティング システムのバージョンのみを更新する
重要
Kubernetes のバージョンを変更せずに、ワークロード クラスターを新しいバージョンのオペレーティング システムに更新できますが、新しいオペレーティング システムのバージョンに別の Kubernetes バージョンが必要ない場合にのみ機能します。
OS バージョンを更新するには、次の例の手順を使用します。
使用可能なワークロード クラスターの更新プログラムを取得するには、次のコマンドを実行します。
Get-AksHciClusterUpdates -name mycluster
details kubernetesversion operatingsystemversion ------- ----------------- ---------------------- This is a patch kubernetes upgrade. (i.e v1.1.X to v1.1.Y) v1.19.9 @{mariner=April 2021; windows=April 2021} This is a minor kubernetes upgrade. (i.e v1.X.1 to v1.Y.1) v1.20.5 @{mariner=April 2021; windows=April 2021}
オペレーティング システムのバージョンの更新を開始するには、次のコマンドを実行します。
Update-AksHciCluster -clusterName mycluster -kubernetesVersion v1.21.1 -operatingSystem
OS と Kubernetes の両方のバージョンを更新する
重要
ワークロード クラスターを新しいバージョンのオペレーティング システムおよび Kubernetes バージョンに更新することがサポートされています。
次の例では、使用可能な新しい Kubernetes バージョンがあり、現在のバージョン番号が v1.20.7 であることを前提としています。
使用可能なワークロード クラスターのすべての更新プログラムを取得するには、次のコマンドを実行します。
Get-AksHciClusterUpdates -name mycluster
details kubernetesversion operatingsystemversion ------- ----------------- ---------------------- This is a patch kubernetes upgrade. (i.e v1.1.X to v1.1.Y) v1.19.9 @{mariner=April 2021; windows=April 2021} This is a minor kubernetes upgrade. (i.e v1.X.1 to v1.Y.1) v1.20.5 @{mariner=April 2021; windows=April 2021}
ワークロード クラスターの更新を開始するには、次のコマンドを実行します。
Update-AksHciCluster -name mycluster -kubernetesVersion v1.21.1
アップグレードを検証する
Get-AksHciCluster コマンドレットを次のように使用して、アップグレードが成功したことを確認します。
Get-AksHciCluster -name mycluster
次の出力例は、クラスターで KubernetesVersion v1.21.1 が実行されていることを示しています。
ProvisioningState : provisioned
KubernetesVersion : v1.21.1
NodePools : linuxnodepool
WindowsNodeCount : 0
LinuxNodeCount : 0
ControlPlaneNodeCount : 1
Name : mycluster
クラスターを削除する
このチュートリアルはシリーズの最後の部分であるため、クラスターを削除することをお勧めします。 Remove-AksHciCluster コマンドを使用して、リソース グループ、コンテナー サービス、およびすべての関連リソースを削除します。
Remove-AksHciCluster -name mycluster
次のステップ
このチュートリアルでは、Arc で有効になっている AKS 上の Kubernetes クラスターの Kubernetes をアップグレードしました。次の方法について学習しました。
- 現在の使用可能な Kubernetes バージョンを識別する
- Kubernetes ノードの Kubernetes バージョンをアップグレードする
- Kubernetes ノードの OS バージョンをアップグレードする
- Kubernetes クラスターを最新バージョンにアップグレードする
- 正常なアップグレードを検証する
Azure Arc で有効になっている AKS の詳細については、AKS の概要クラスターとワークロードのを参照してください。