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 mynodepool \
--cluster-name myAKSCluster \
--resource-group myResourceGroup
出力では、次の例のように latestNodeImageVersion
が示されます。
{
"id": "/subscriptions/XXXX-XXX-XXX-XXX-XXXXX/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/agentPools/mynodepool/upgradeProfiles/default",
"kubernetesVersion": "1.17.11",
"latestNodeImageVersion": "AKSUbuntu-1604-2020.10.28",
"name": "default",
"osType": "Linux",
"resourceGroup": "myResourceGroup",
"type": "Microsoft.ContainerService/managedClusters/agentPools/upgradeProfiles",
"upgrades": null
}
出力例は、latestNodeImageVersion
として AKSUbuntu-1604-2020.10.28
を示しています。
az aks nodepool show
コマンドを使用して、最新のバージョンと現在のノード イメージ バージョンを比較します。
az aks nodepool show \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool \
--query nodeImageVersion
出力は次の例のようになります。
"AKSUbuntu-1604-2020.10.08"
この例では、バージョン AKSUbuntu-1604-2020.10.08
からバージョン AKSUbuntu-1604-2020.10.28
への使用可能なノード イメージ バージョンのアップグレードがあります。
すべてのノード プールのすべてのノード イメージをアップグレードする
--node-image-only
フラグを指定した az aks upgrade
コマンドを使用して、ノード イメージをアップグレードします。
az aks upgrade \
--resource-group myResourceGroup \
--name myAKSCluster \
--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 show
コマンドを使用して、更新されたノード プールの詳細を取得します。 現在のノード イメージが nodeImageVersion
プロパティに表示されます。
az aks show \
--resource-group myResourceGroup \
--name myAKSCluster
特定のノード プールのアップグレード
Kubernetes クラスターをアップグレードせずにノード プールの OS イメージを更新するには、--node-image-only
フラグを指定した az aks nodepool upgrade
コマンドを使用します。
az aks nodepool upgrade \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool \
--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 myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool
ノード サージを使用したノード イメージのアップグレード
ノード イメージのアップグレード プロセスを高速化するために、カスタマイズ可能なノード サージ値を使用して、ノード イメージをアップグレードすることができます。 既定では、AKS は 1 つの追加ノードを使ってアップグレードを構成します。
アップグレードの速度を上げる場合は、--max-surge
フラグを指定した az aks nodepool update
コマンドを使用して、アップグレードに使用するノードの数を構成します。 さまざまな --max-surge
設定のトレードオフの詳細については、「--max-surge
」を参照してください。
az aks nodepool update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool \
--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 myResourceGroup \
--cluster-name myAKSCluster \
--name mynodepool
次のステップ
- 最新のノード イメージの詳細については、AKS のリリース ノートをご覧ください。
- 「AKS クラスターのアップグレード」によって Kubernetes バージョンをアップグレードする方法を確認します。
- GitHub Actions でクラスターとノード プールのアップグレードを自動的に適用します。
- 複数ノードプールの詳細については、「複数ノードプールの作成」 を参照してください。
- アップグレードのベスト プラクティスとその他の考慮事項の詳細については、AKS のパッチとアップグレード ガイダンスのページを参照してください。
Azure Kubernetes Service
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示