Azure Kubernetes Service (AKS) ノード イメージのアップグレード
Azure Kubernetes Service (AKS) では新しいノード イメージが定期的に提供されるため、最新の AKS 機能を使用するには、ノード イメージを頻繁にアップグレードすると便利です。 Linux のノード イメージは毎週更新され、Windows のノード イメージは毎月更新されます。 イメージのアップグレードのお知らせは AKS リリース ノートに含まれています。これらの更新がすべてのリージョンで提供されるまでには最大 1 週間かかる場合があります。 また、ノード イメージのアップグレードを自動的に実行し、計画メンテナンスを使用してスケジュールすることもできます。 詳細については、「ノード イメージを自動的にアップグレードする」をご覧ください。
この記事では、AKS クラスター ノード イメージをアップグレードする方法と、Kubernetes バージョンをアップグレードせずにノード プール イメージを更新する方法について説明します。 お使いのクラスターの Kubernetes バージョンのアップグレードの詳細については、「AKS クラスターのアップグレード」をご覧ください。
Note
AKS クラスターでは、ノードに仮想マシン スケール セットを使用する必要があります。
ノード イメージのバージョン (例えば AKSUbuntu-2204 を AKSUbuntu-1804 に、または AKSUbuntu-2204-202308.01.0 を AKSUbuntu-2204-202307.27.0 に) ダウングレードしたりすることはできません。
使用可能なノード イメージのアップグレードを確認する
az aks nodepool get-upgrades
コマンドを使用して、使用可能なノード イメージのアップグレードを確認します。az aks nodepool get-upgrades \ --nodepool-name <node-pool-name> \ --cluster-name <cluster-name> \ --resource-group <resource-group>
出力で、
latestNodeImageVersion
の値を見つけてメモします。 この値は、ノード プールで使用できる最新のノード イメージ バージョンです。az aks nodepool show
コマンドを使用して、現在のノード イメージ バージョンを確認して最新のバージョンと比較します。az aks nodepool show \ --resource-group <resource-group> \ --cluster-name <cluster-name> \ --name <node-pool-name> \ --query nodeImageVersion
nodeImageVersion
の値がlatestNodeImageVersion
と異なる場合は、ノード イメージをアップグレードできます。
すべてのノード プールのすべてのノード イメージをアップグレードする
--node-image-only
フラグを指定したaz aks upgrade
コマンドを使用して、クラスター内のすべてのノード プール内のすべてのノード イメージをアップグレードします。az aks upgrade \ --resource-group <resource-group> \ --name <cluster-name> \ --node-image-only
kubectl get nodes
コマンドを使用して、ノード イメージの状態を確認できます。Note
このコマンドは、お使いのシェルによって若干異なる場合があります。 Windows および PowerShell 環境の詳細については、Kubernetes JSONPath のドキュメントを参照してください。
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
アップグレードが完了したら、
az aks show
コマンドを使用して、更新されたノード プールの詳細を取得します。 現在のノード イメージがnodeImageVersion
プロパティに表示されます。az aks show \ --resource-group <resource-group> \ --name <cluster-name>
特定のノード プールのアップグレード
--node-image-only
フラグを指定したaz aks nodepool upgrade
コマンドを使用して、Kubernetes クラスターをアップグレードせずにノード プールの OS イメージを更新します。az aks nodepool upgrade \ --resource-group <resource-group> \ --cluster-name <cluster-name> \ --name <node-pool-name> \ --node-image-only
kubectl get nodes
コマンドを使用して、ノード イメージの状態を確認できます。注意
このコマンドは、お使いのシェルによって若干異なる場合があります。 Windows および PowerShell 環境の詳細については、Kubernetes JSONPath のドキュメントを参照してください。
kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
アップグレードが完了したら、
az aks nodepool show
コマンドを使用して、更新されたノード プールの詳細を取得します。 現在のノード イメージがnodeImageVersion
プロパティに表示されます。az aks nodepool show \ --resource-group <resource-group> \ --cluster-name <cluster-name> \ --name <node-pool-name>
ノード サージを使用したノード イメージのアップグレード
ノード イメージのアップグレード プロセスを高速化するために、カスタマイズ可能なノード サージ値を使用して、ノード イメージをアップグレードすることができます。 既定では、AKS は 1 つの追加ノードを使ってアップグレードを構成します。
--max-surge
フラグを指定したaz aks nodepool update
コマンドを使用してノード サージのあるノード イメージをアップグレードし、アップグレードに使用するノードの数を構成します。Note
さまざまな
--max-surge
設定のトレードオフの詳細については、「--max-surge
」を参照してください。az aks nodepool update \ --resource-group <resource-group> \ --cluster-name <cluster-name> \ --name <node-pool-name> \ --max-surge 33% \ --no-wait
kubectl get nodes
コマンドを使用して、ノード イメージの状態を確認できます。kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
更新されたノード プールの詳細を
az aks nodepool show
を使用して取得して、更新されたノード プールの詳細を取得します。 現在のノード イメージがnodeImageVersion
プロパティに表示されます。az aks nodepool show \ --resource-group <resource-group> \ --cluster-name <cluster-name> \ --name <node-pool-name>
次のステップ
- 最新のノード イメージの詳細については、AKS のリリース ノートをご覧ください。
- 「AKS クラスターのアップグレード」によって Kubernetes バージョンをアップグレードする方法を確認します。
- GitHub Actions でクラスターとノード プールのアップグレードを自動的に適用します。
- 複数ノードプールの詳細については、「複数ノードプールの作成」 を参照してください。
- AKS パッチとアップグレード ガイダンスでベスト プラクティスのアップグレードについて説明します。
Azure Kubernetes Service