次の方法で共有


Azure Kubernetes Service (AKS) ノード イメージのアップグレード

Azure Kubernetes Service (AKS) では新しいノード イメージが定期的に提供されるため、最新の AKS 機能を使用するには、ノード イメージを頻繁にアップグレードすると便利です。 Linux のノード イメージは毎週更新され、Windows のノード イメージは毎月更新されます。 イメージのアップグレードのお知らせは AKS リリース ノートに含まれています。これらの更新がすべてのリージョンで提供されるまでには最大 1 週間かかる場合があります。 また、ノード イメージのアップグレードを自動的に実行し、計画メンテナンスを使用してスケジュールすることもできます。 詳細については、「ノード イメージを自動的にアップグレードする」をご覧ください。

この記事では、AKS クラスター ノード イメージをアップグレードする方法と、Kubernetes バージョンをアップグレードせずにノード プール イメージを更新する方法について説明します。 お使いのクラスターの Kubernetes バージョンのアップグレードの詳細については、「AKS クラスターのアップグレード」をご覧ください。

AKS クラスターでは、ノードに仮想マシン スケール セットを使用する必要があります。

ノード イメージのバージョン (例えば AKSUbuntu-2204 を AKSUbuntu-1804 に、または AKSUbuntu-2204-202308.01.0 を AKSUbuntu-2204-202307.27.0 に) ダウングレードしたりすることはできません。

AKS クラスターに接続する

  1. [az aks get-credentials][az-aks-get-credentials] コマンドを使用して AKS クラスターに接続します。

    az aks get-credentials \
        --resource-group $AKS_RESOURCE_GROUP \
        --name $AKS_CLUSTER
    

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

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

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

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

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

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

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

    az aks upgrade \
        --resource-group $AKS_RESOURCE_GROUP \
        --name $AKS_CLUSTER \
        --node-image-only \
        --yes
    
  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 show コマンドを使用して、更新されたノード プールの詳細を取得します。 現在のノード イメージが nodeImageVersion プロパティに表示されます。

    az aks show \
        --resource-group $AKS_RESOURCE_GROUP \
        --name $AKS_CLUSTER
    

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

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

    az aks nodepool upgrade \
        --resource-group $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL \
        --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 $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL
    

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

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

  1. az aks nodepool update フラグを指定した --max-surge コマンドを使用してノード サージのあるノード イメージをアップグレードし、アップグレードに使用するノードの数を構成します。

    さまざまな --max-surge 設定のトレードオフの詳細については、「--max-surge」を参照してください。

    az aks nodepool update \
        --resource-group $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL \
        --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 $AKS_RESOURCE_GROUP \
        --cluster-name $AKS_CLUSTER \
        --name $AKS_NODEPOOL
    

次のステップ