次の方法で共有


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 に) ダウングレードしたりすることはできません。

使用可能なノード イメージのアップグレードを確認する

  1. az aks nodepool get-upgrades コマンドを使用して、使用可能なノード イメージのアップグレードを確認します。

    az aks nodepool get-upgrades \
        --nodepool-name <node-pool-name> \
        --cluster-name <cluster-name> \
        --resource-group <resource-group>
    
  2. 出力で、latestNodeImageVersion の値を見つけてメモします。 この値は、ノード プールで使用できる最新のノード イメージ バージョンです。

  3. az aks nodepool show コマンドを使用して、現在のノード イメージ バージョンを確認して最新のバージョンと比較します。

    az aks nodepool show \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name> \
        --query nodeImageVersion
    
  4. nodeImageVersion の値が latestNodeImageVersion と異なる場合は、ノード イメージをアップグレードできます。

すべてのノード プールのすべてのノード イメージをアップグレードする

  1. --node-image-only フラグを指定した az aks upgrade コマンドを使用して、クラスター内のすべてのノード プール内のすべてのノード イメージをアップグレードします。

    az aks upgrade \
        --resource-group <resource-group> \
        --name <cluster-name> \
        --node-image-only
    
  2. 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}'
    
  3. アップグレードが完了したら、az aks show コマンドを使用して、更新されたノード プールの詳細を取得します。 現在のノード イメージが nodeImageVersion プロパティに表示されます。

    az aks show \
        --resource-group <resource-group> \
        --name <cluster-name>
    

特定のノード プールのアップグレード

  1. --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
    
  2. 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}'
    
  3. アップグレードが完了したら、az aks nodepool show コマンドを使用して、更新されたノード プールの詳細を取得します。 現在のノード イメージが nodeImageVersion プロパティに表示されます。

    az aks nodepool show \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name>
    

ノード サージを使用したノード イメージのアップグレード

ノード イメージのアップグレード プロセスを高速化するために、カスタマイズ可能なノード サージ値を使用して、ノード イメージをアップグレードすることができます。 既定では、AKS は 1 つの追加ノードを使ってアップグレードを構成します。

  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
    
  2. kubectl get nodes コマンドを使用して、ノード イメージの状態を確認できます。

    kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'
    
  3. 更新されたノード プールの詳細を az aks nodepool show を使用して取得して、更新されたノード プールの詳細を取得します。 現在のノード イメージが nodeImageVersion プロパティに表示されます。

    az aks nodepool show \
        --resource-group <resource-group> \
        --cluster-name <cluster-name> \
        --name <node-pool-name>
    

次のステップ