AKS クラスター ライフサイクルの一部には、最新の Kubernetes バージョンへの定期的なアップグレードの実行が含まれます。 最新のセキュリティ リリースを適用するか、アップグレードして最新の機能を入手することが重要です。 自動アップグレードについて学習する前に、AKS クラスター アップグレードの基礎を必ず理解してください。
注意
手動でも自動でも、アップグレード操作を実行すると、ノード イメージの最新バージョンがまだ導入されていない場合はアップグレードされます。 最新バージョンは完全な AKS リリースに依存しており、AKS リリース トラッカーにアクセスすることで特定できます。
自動アップグレードでは、最初にコントロール プレーンがアップグレードされ、次にエージェント プールが 1 つずつアップグレードされます。
クラスターの自動アップグレードを使用する理由
クラスター自動アップグレードは、時間と運用コストの面で目に見えるメリットを生み出す、"1 回設定するだけ" のメカニズムです。 ワークロードの停止や再デプロイ、新しい AKS クラスターの作成などの必要はありません。 自動アップグレードを有効にすると、クラスターを常に最新の状態に保ち、AKS やアップストリーム Kubernetes が提供する最新の機能やパッチを見逃さないようにすることができます。
AKS は、厳密なサポート性のバージョン管理ウィンドウに従っています。 適切に選択された自動アップグレード チャネルを使用することで、クラスターがサポートされていないバージョンに陥ることを回避できます。 AKS サポート ウィンドウの詳細については、「エイリアス マイナー バージョン」を参照してください。
顧客と AKS によって開始される自動アップグレード
次のガイダンスを参考にして、クラスター自動アップグレードの詳細を指定できます。 アップグレードは指定した頻度に基づいて行われます。アップグレードではサポートされている Kubernetes バージョンの使用を維持することをお勧めします。
AKS では、サポートされていないクラスターの自動アップグレードも開始されます。 n-3 バージョンのクラスター (n はサポートされている最新の AKS GA マイナー バージョン) が n-4 にドロップされようとしている場合、AKS はクラスターを n-2 に自動的にアップグレードして AKS サポート ポリシーに残るようにします。 プラットフォームでサポートされているクラスターをサポートされているバージョンに自動的にアップグレードすることは、既定で有効になっています。 停止したノード プールは、自動アップグレード操作中にアップグレードされます。 アップグレードは、ノード プールの開始時にノードに適用されます。 中断を最小限に抑えるには、メンテナンス期間を設定します。
クラスターの自動アップグレードの制限事項
クラスターの自動アップグレードを使用している場合、最初にコントロール プレーンをアップグレードしてから、個々のノード プールをアップグレードすることはできなくなりました。 クラスターの自動アップグレードでは、コントロール プレーンとノード プールが常に一緒にアップグレードされます。 コントロール プレーンのみをアップグレードすることはできません。
az aks upgrade --control-plane-only コマンドを実行すると、次のエラーが発生します。NotAllAgentPoolOrchestratorVersionSpecifiedAndUnchanged: Using managed cluster api, all Agent pools' OrchestratorVersion must be all specified or all unspecified. If all specified, they must be stay unchanged or the same with control plane.
node-image (レガシであり今後使用されない) クラスターの自動アップグレード チャネルまたは NodeImage ノード イメージの自動アップグレード チャネルを使用する場合、Linux の無人アップグレードは既定で無効になります。
クラスターの自動アップグレード チャネル
自動的に実行されたアップグレードは、手動アップグレードと機能的に同じです。 アップグレードのタイミングは、選んだ自動アップグレード チャネルによって決まります。 自動アップグレードに変更を加える場合、変更が有効になるまで 24 時間かかります。 クラスターの自動アップグレードは、クラスターの手動アップグレードを同じプロセスに従います。 詳細については、「AKS クラスターのアップグレード」を参照してください。
次のアップグレード チャネルを使用できます。
注意
クラスター自動アップグレードを使用する場合は、次の情報に注意してください。
クラスター自動アップグレードは Kubernetes の GA バージョンにのみアップグレードされます。プレビュー バージョンに更新されることはありません。
AKS を使用すると、正確なパッチ バージョンを指定せずにクラスターを作成できます。 パッチを指定せずにクラスターを作成すると、クラスターでマイナー バージョンの最新の一般提供パッチが実行されます。 詳しくは、AKS サポート ウィンドウをご覧ください。
自動アップグレードでは、 チャネルを使用している場合でも、クラスターの Kubernetes バージョンが
node-image内に収まるようにする必要があります。プレビュー API
11-02-preview以降を使用している場合、node-imageクラスター自動アップグレード チャネルを選ぶと、ノード イメージの自動アップグレード チャネルが自動的にNodeImageに設定されます。各クラスターは、1 つの自動アップグレード チャネルにのみ関連付けることができます。 これは、指定したチャネルによって、クラスター上で実行される Kubernetes バージョンが決まるためです。
クラスターに自動アップグレード チャネルがなく、LTS "(長期サポート)" に対してチャネルを有効にすると、チャネルは既定で 自動アップグレード チャネルになります。
patch
新しい AKS クラスターでクラスター自動アップグレードを使用する
-
az aks createコマンドとauto-upgrade-channelパラメーターを使用して新しいクラスターを作成する際に、自動アップグレード チャネルを設定します。
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export RESOURCE_GROUP="myResourceGroup$RANDOM_SUFFIX"
export AKS_CLUSTER_NAME="myAKSCluster"
az aks create --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER_NAME --auto-upgrade-channel stable --generate-ssh-keys
既存の AKS クラスターでクラスター自動アップグレードを使用する
-
az aks updateコマンドとauto-upgrade-channelパラメーターを使用して、既存のクラスターに自動アップグレード チャネルを設定します。
az aks update --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER_NAME --auto-upgrade-channel stable
結果:
{
"id": "/subscriptions/xxxxx-xxxxx-xxxxx-xxxxx/resourceGroups/myResourceGroupabc123/providers/Microsoft.ContainerService/managedClusters/myAKSCluster",
"properties": {
"autoUpgradeChannel": "stable",
"provisioningState": "Succeeded"
}
}
計画メンテナンスで自動アップグレードを使用する
計画メンテナンスとクラスター自動アップグレードを使用する場合は、指定したメンテナンス期間中にアップグレードが開始されます。
注意
適切な機能を確保するには、"4 時間以上" のメンテナンス期間を費やしてください。
計画メンテナンスでメンテナンス期間を設定する方法の詳細については、「計画メンテナンスを使用して Azure Kubernetes Service (AKS) クラスターのメンテナンス期間をスケジュールする」をご覧ください。
クラスターの自動アップグレードのベスト プラクティス
自動アップグレードを使用する効果を最大化できるように、次のベスト プラクティスを使用してください。
- クラスターを常にサポートされているバージョン (つまり N-2 ルール内) に保持するには、
stableまたはrapidどちらかのチャネルを選びます。 - できるだけ早く最新のパッチを入手したい場合は、
patchチャネルを使用してください。node-imageチャネルは、エージェント プールで常に最新のノード イメージを稼働させたい場合に適しています。 - 別のクラスター アップグレード チャネルの使用中にノード イメージを自動的にアップグレードするには、ノード イメージの自動アップグレード
NodeImageチャネルの使用を検討してください。 - オペレーターのベスト プラクティスに関する記事を参照してください。
- PDB のベスト プラクティスに関する記事を参照してください。
- アップグレードのトラブルシューティング情報については、「AKS のトラブルシューティングに関するドキュメント」をご覧ください。
アップグレードのベスト プラクティスとその他の考慮事項の詳細については、AKS のパッチとアップグレード ガイダンスのページを参照してください。
Azure Kubernetes Service