Azure Kubernetes Service (AKS) クラスターの自動アップグレード

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 クラスターのアップグレード」を参照してください。

次のアップグレード チャネルを使用できます。

チャネル アクション
none 自動アップグレードを無効にし、クラスターをその現行バージョンの Kubernetes で維持します。 デフォルトの設定 (変更されていない場合)。
patch サポートされる最新バージョンのパッチが利用できるようになると、クラスターが自動的にアップグレードされます。マイナー バージョンはそのまま維持されます。 たとえば、クラスターでバージョン 1.17.7 が実行されており、バージョン 1.17.91.18.41.18.61.19.1 が利用できる場合、クラスターは 1.17.9 にアップグレードされます。
stable マイナー バージョンでサポートされる最新パッチ リリースの N-1 にクラスターが自動的にアップグレードされます。N はサポートされる最新のマイナー バージョンです。 たとえば、クラスターでバージョン 1.17.7 が実行されており、バージョン 1.17.91.18.41.18.61.19.1 が利用できる場合、クラスターは 1.18.6 にアップグレードされます。
rapid サポートされる最新のマイナー バージョンでサポートされる最新のパッチ リリースにクラスターが自動的にアップグレードされます。 クラスターの Kubernetes バージョンが N-2 マイナー バージョンの場合 (N はサポートされる最新のマイナー バージョン)、クラスターはまず、N-1 マイナー バージョンでサポートされる最新のパッチ バージョンにアップグレードされます。 たとえば、クラスターでバージョン 1.17.7 が実行されており、バージョン 1.17.91.18.41.18.61.19.1 が利用できる場合、クラスターはまず 1.18.6 にアップグレードされ、次に 1.19.1 にアップグレードされます。
node-image(レガシ) ノード イメージを利用可能な最新バージョンへ自動的にアップグレードします。 Microsoft では、イメージ ノードのパッチと新しいイメージを頻繁に (通常は毎週) 提供していますが、ノード イメージのアップグレードを実行しない限り、実行中のノードは新しいイメージを取得しません。 ノード イメージ チャネルをオンにした場合、新しいバージョンが使用可能になるたびに、ノード イメージが自動的に更新されます。 このチャネルを使用する場合、Linux の無人アップグレードは既定で無効になります。 ノード イメージのアップグレードは、マイナー Kubernetes バージョンが引き続きサポートされている限り、非推奨のパッチ バージョンで機能します。 このチャネルは推奨されなくなり、今後廃止される予定です。 ノード イメージを自動的にアップグレードできるオプションについては、ノード イメージの自動アップグレードNodeImage チャネルを参照してください。

Note

クラスター自動アップグレードを使用する場合は、次の情報に注意してください。

  • クラスター自動アップグレードは Kubernetes の GA バージョンにのみアップグレードされます。プレビュー バージョンに更新されることはありません。

  • AKS を使用すると、正確なパッチ バージョンを指定せずにクラスターを作成できます。 パッチを指定せずにクラスターを作成すると、クラスターでマイナー バージョンの最新の一般提供パッチが実行されます。 詳しくは、AKS サポート ウィンドウをご覧ください。

  • 自動アップグレードでは、node-image チャネルを使用している場合でも、クラスターの Kubernetes バージョンが AKS サポート期間内に収まるようにする必要があります。

  • プレビュー API 11-02-preview 以降を使用している場合、node-image クラスター自動アップグレード チャネルを選ぶと、ノード イメージの自動アップグレード チャネルが自動的に NodeImage に設定されます。

  • 各クラスターは、1 つの自動アップグレード チャネルにのみ関連付けることができます。 これは、指定したチャネルによって、クラスター上で実行される Kubernetes バージョンが決まるためです。

  • クラスターに自動アップグレード チャネルがなく、LTS "(長期サポート)" に対してチャネルを有効にすると、チャネルは既定で patch 自動アップグレード チャネルになります。

新しい AKS クラスターでクラスター自動アップグレードを使用する

  • az aks create コマンドと auto-upgrade-channel パラメーターを使用して新しいクラスターを作成する際に、自動アップグレード チャネルを設定します。

    az aks create --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel stable --generate-ssh-keys
    

既存の AKS クラスターでクラスター自動アップグレードを使用する

  • az aks update コマンドと auto-upgrade-channel パラメーターを使用して、既存のクラスターに自動アップグレード チャネルを設定します。

    az aks update --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel stable
    

計画メンテナンスで自動アップグレードを使用する

計画メンテナンスとクラスター自動アップグレードを使用する場合は、指定したメンテナンス期間中にアップグレードが開始されます。

注意

適切な機能を確保するには、"4 時間以上" のメンテナンス期間を費やしてください。

計画メンテナンスでメンテナンス期間を設定する方法の詳細については、「計画メンテナンスを使用して Azure Kubernetes Service (AKS) クラスターのメンテナンス期間をスケジュールする」をご覧ください。

クラスターの自動アップグレードのベスト プラクティス

自動アップグレードを使用する効果を最大化できるように、次のベスト プラクティスを使用してください。

  • クラスターを常にサポートされているバージョン (つまり N-2 ルール内) に保持するには、stable または rapid どちらかのチャネルを選びます。
  • できるだけ早く最新のパッチを入手したい場合は、patch チャネルを使用してください。 node-image チャネルは、エージェント プールで常に最新のノード イメージを稼働させたい場合に適しています。
  • 別のクラスター アップグレード チャネルの使用中にノード イメージを自動的にアップグレードするには、ノード イメージの自動アップグレード NodeImage チャネルの使用を検討してください。
  • オペレーターのベスト プラクティスに関する記事を参照してください。
  • PDB のベスト プラクティスに関する記事を参照してください。
  • アップグレードのトラブルシューティング情報については、「AKS のトラブルシューティングに関するドキュメント」をご覧ください。

アップグレードのベスト プラクティスとその他の考慮事項の詳細については、AKS のパッチとアップグレード ガイダンスのページを参照してください。