Azure Kubernetes Service (AKS) クラスターのアップグレードUpgrade an Azure Kubernetes Service (AKS) cluster

AKS クラスターのライフサイクルの一環として、最新の Kubernetes バージョンへのアップグレードが必要になることはよくあります。As part of the lifecycle of an AKS cluster, you often need to upgrade to the latest Kubernetes version. 最新の Kubernetes セキュリティ リリースを適用するか、アップグレードして最新の機能を入手することが重要です。It is important you apply the latest Kubernetes security releases, or upgrade to get the latest features. この記事では、AKS クラスター内のマスター コンポーネントまたは 1 つの既定のノード プールをアップグレードする方法について説明します。This article shows you how to upgrade the master components or a single, default node pool in an AKS cluster.

複数のノード プールまたは Windows Server ノード (現在 AKS でプレビュー段階) を使用する AKS クラスターについては、AKS 内のノード プールのアップグレードに関するページを参照してください。For AKS clusters that use multiple node pools or Windows Server nodes (currently in preview in AKS), see Upgrade a node pool in AKS.

開始する前にBefore you begin

この記事では、Azure CLI バージョン 2.0.65 以降を実行している必要があります。This article requires that you are running the Azure CLI version 2.0.65 or later. バージョンを確認するには、az --version を実行します。Run az --version to find the version. インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。If you need to install or upgrade, see Install Azure CLI.


AKS クラスターのアップグレードで、ノードの切断とドレインがトリガーされます。An AKS cluster upgrade triggers a cordon and drain of your nodes. 使用可能なコンピューティング クォータが少ない場合は、アップグレードが失敗する可能性があります。If you have a low compute quota available, the upgrade may fail. 詳しくは、「クォータの増加」をご覧ください。See increase quotas for more information. 独自のクラスター オートスケーラー デプロイを実行している場合は、アップグレード プロセスを妨げる可能性があるため、アップグレード中はこれを無効にしてください (ゼロ レプリカにスケーリングできます)。If you are running your own cluster autoscaler deployment please disable it (you can scale it to zero replicas) during the upgrade as there is a chance it will interfere with the upgrade process. マネージド オートスケーラーは、これを自動的に処理します。Managed autoscaler automatically handles this.

利用できる AKS クラスターのアップグレードを確認するCheck for available AKS cluster upgrades

ご使用のクラスターに利用できる Kubernetes リリースを確認するには、az aks get-upgrades コマンドを使用します。To check which Kubernetes releases are available for your cluster, use the az aks get-upgrades command. 次の例では、myResourceGroup という名前のリソース グループ内の myAKSCluster という名前のクラスターに対して利用できるアップグレードを確認します。The following example checks for available upgrades to the cluster named myAKSCluster in the resource group named myResourceGroup:

az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster --output table


AKS クラスターをアップグレードする際に、Kubernetes マイナー バージョンをスキップすることはできません。When you upgrade an AKS cluster, Kubernetes minor versions cannot be skipped. たとえば、1.12.x -> 1.13.x または 1.13.x -> 1.14.x の間のアップグレードは許可されていますが、1.12.x -> 1.14.x は許可されていません。For example, upgrades between 1.12.x -> 1.13.x or 1.13.x -> 1.14.x are allowed, however 1.12.x -> 1.14.x is not.

1.12.x -> 1.14.x にアップグレードするには、まず 1.12.x -> 1.13.x にアップグレードしてから、1.13.x -> 1.14.x にアップグレードします。To upgrade, from 1.12.x -> 1.14.x, first upgrade from 1.12.x -> 1.13.x, then upgrade from 1.13.x -> 1.14.x.

次の出力例は、クラスターをバージョン にアップグレードできることを示しています。The following example output shows that the cluster can be upgraded to versions 1.13.9 and 1.13.10:

Name     ResourceGroup     MasterVersion    NodePoolVersion    Upgrades
-------  ----------------  ---------------  -----------------  ---------------
default  myResourceGroup   1.12.8           1.12.8             1.13.9, 1.13.10

アップグレードが利用できない場合は、次のように表示されます。If no upgrade is available, you will get:

ERROR: Table output unavailable. Use the --query option to specify an appropriate query. Use --debug for more info.

AKS クラスターのアップグレードUpgrade an AKS cluster

AKS クラスターに利用できるバージョンの一覧を参照し、az aks upgrade コマンドを使用してアップグレードします。With a list of available versions for your AKS cluster, use the az aks upgrade command to upgrade. アップグレード プロセス中に、AKS は指定された Kubernetes バージョンを実行する新しいノードをクラスターに追加した後、実行中のアプリケーションへの中断を最小限に抑えるために古いノードのいずれかを慎重に切断およびドレインします。During the upgrade process, AKS adds a new node to the cluster that runs the specified Kubernetes version, then carefully cordon and drains one of the old nodes to minimize disruption to running applications. 新しいノードが実行中のアプリケーション ポッドとして確認されたら、その古いノードが削除されます。When the new node is confirmed as running application pods, the old node is deleted. このプロセスは、クラスター内のすべてのノードがアップグレードされるまで繰り返されます。This process repeats until all nodes in the cluster have been upgraded.

次の例では、クラスターをバージョン 1.13.10 にアップグレードします。The following example upgrades a cluster to version 1.13.10:

az aks upgrade --resource-group myResourceGroup --name myAKSCluster --kubernetes-version 1.13.10

ノード数にもよりますが、クラスターのアップグレードには数分かかります。It takes a few minutes to upgrade the cluster, depending on how many nodes you have.


クラスターのアップグレードについては、完了までの合計許容時間があります。There is a total allowed time for a cluster upgrade to complete. この時間は 10 minutes * total number of nodes in the cluster の積を取得することによって計算されます。This time is calculated by taking the product of 10 minutes * total number of nodes in the cluster. たとえば、20 ノードのクラスターでは、アップグレード操作が 200 分で成功する必要があります。それを超えた場合は、AKS によって操作が失敗します。これは、クラスターが回復不能な状態になるのを回避するためです。For example in a 20 node cluster, upgrade operations must succeed in 200 minutes or AKS will fail the operation to avoid an unrecoverable cluster state. アップグレードの失敗から回復するには、タイムアウトに達した後にアップグレード操作を再試行してください。To recover on upgrade failure, retry the upgrade operation after the timeout has been hit.

アップグレードが成功したことを確認するには、az aks show コマンドを使用します。To confirm that the upgrade was successful, use the az aks show command:

az aks show --resource-group myResourceGroup --name myAKSCluster --output table

次の出力例は、クラスターが現在 1.13.10 で実行されていることを示しています。The following example output shows that the cluster now runs 1.13.10:

Name          Location    ResourceGroup    KubernetesVersion    ProvisioningState    Fqdn
------------  ----------  ---------------  -------------------  -------------------  ---------------------------------------------------------------
myAKSCluster  eastus      myResourceGroup  1.13.10               Succeeded  

次のステップNext steps

この記事では、既存の AKS クラスターをアップグレードする方法について説明しました。This article showed you how to upgrade an existing AKS cluster. AKS クラスターのデプロイと管理の詳細については、一連のチュートリアルを参照してください。To learn more about deploying and managing AKS clusters, see the set of tutorials.