Azure Kubernetes Fleet Manager を使用して、複数のクラスター全体で更新を調整する
多数のクラスターが含まれる Kubernetes フリートを管理するプラットフォーム管理者は、多くの場合、複数のクラスター間で安全かつ予測可能な方法で更新プログラムをステージングするという問題に直面します。 この問題点に対処するために、Kubernetes Fleet Manager (フリート) では、更新実行、ステージ、グループ、戦略を使って複数のクラスター間で更新を調整できます。
前提条件
このドキュメントの、更新戦略、実行、ステージ、およびグループ参照の説明を示す、「この機能の概念の概要」を参照してください。
1 つ以上のメンバー クラスターを持つフリート リソースが存在する必要があります。 そうでない場合は、クイックスタートに従って Fleet リソースを作成し、Azure Kubernetes Service (AKS) クラスターをメンバーとして参加させます。 このチュートリアルでは、例として 5 つの AKS メンバー クラスターを含むフリート リソースを示します。
以下の環境変数を設定します。
export GROUP=<resource-group> export FLEET=<fleet-name>
この記事の Azure CLI の手順に従っている場合は、Azure CLI バージョン 2.53.1 以降がインストールされている必要があります。 インストールとアップグレードについては、「Azure CLI のインストール」を参照してください。
次のコマンドを実行してインストールできる
fleet
Azure CLI 拡張機能も必要です。az extension add --name fleet
次のコマンドを実行して、リリースされた最新バージョンの拡張機能に更新します:
az extension update --name fleet
すべてのクラスターを 1 つずつ更新する
Azure Kubernetes Fleet Manager リソースのページで、[Multi-cluster update] (マルチクラスター更新) メニューに移動し、[作成] を選択します。
[One by one] (1 つずつ)を選択するか、[Stages] (ステージ)を選択できます。
アップグレード スコープでは、 Kubernetes バージョンとノード イメージ バージョンの両方を更新するか、ノード イメージバージョンのみを更新するかを選択できます。
ノード イメージの場合は、次のオプションを使用できます。
- [Latest] (最新): 更新の実行内のすべての AKS クラスターを、そのリージョンのそのクラスターで使用可能な最新のイメージに更新します。
- [Consistent] (一貫性): 更新の実行では、AKS クラスターが複数のリージョンに存在し、それらのリージョンでは利用可能な最新のノード イメージが異なる可能性があるためです (詳細については、リリース トラッカーを確認してください)。 更新の実行では、一貫性を実現するために、これらすべてのリージョンに共通の最新イメージが選択されます。
特定の順序でクラスターを更新する
更新のグループとステージを使用すると、クラスターを更新するときに更新の実行で従うシーケンスをより細かく制御できます。 更新ステージ内では、更新はすべての異なる更新グループに並列で適用されます。更新グループ内では、メンバー クラスターが順番に更新されます。
クラスターを更新グループに割り当てる
次の 2 つの方法のいずれかで、メンバー クラスターを特定の更新グループに割り当てることができます。
- フリートにメンバー クラスターを追加するときにグループに割り当てる。 次に例を示します。
- 2 番目の方法は、既存のフリート メンバーを更新グループに割り当てることです。 次に例を示します。
Note
すべてのフリート メンバーは 1 つの更新グループの一部にのみなることができますが、更新グループには複数のフリート メンバーを含めることができます。 更新グループ自体は、別のリソースの種類ではありません。 更新グループは、単にフリート メンバーからの参照を表す文字列です。 そのため、共通の更新グループを参照しているすべてのフリート メンバーが削除されると、その特定の更新グループも存在しなくなります。
更新の実行とステージを定義する
更新プログラムの実行を更新ステージを使用して定義すると、更新プログラムの適用をさまざまな更新グループに順番に並べることができます。 たとえば、最初の更新ステージではテスト環境メンバー クラスターを更新し、2 番目の更新ステージではその後、運用環境メンバー クラスターを更新できます。 更新ステージ間の待機時間を指定することもできます。
Azure Kubernetes Fleet Manager リソースのページで、[Multi-cluster update] (マルチクラスター更新) に移動し、[作成] を選択します。
[ステージ] を選択し、目的のアップグレード スコープに応じて [Node image (latest) + Kubernetes version] (ノード イメージ (最新) + Kubernetes バージョン) または [Node image (latest)] (ノード イメージ (最新)) のいずれかを選択します。
[ステージ] で、[ステージの作成] を選択します。 ここで、ステージ名と各ステージの後の待機期間を指定できます。
このステージに含める更新グループを選択します。
すべてのステージを定義し、[上へ移動] と [下へ移動] のコントロールを使用してそれらを並べ替えた後で、更新実行の作成に進みます。
[Multi-cluster update] (マルチクラスター更新) メニューで、更新実行を選択し、[開始] を選択します。
更新戦略を使用して更新実行を作成する
前のセクションで、更新実行を作成するには、ステージ、グループ、およびそれらの順序を毎回指定する必要がありました。 更新戦略を使用すると、更新の実行のためのテンプレートを格納できるため、これを簡略化できます。
Note
同じ更新戦略から、一意の名前を持つ複数の更新の実行を作成できます。
更新の実行を作成するときに、更新戦略を同時に作成するオプションが表示され、この実行が、後続の更新の実行のためのテンプレートとして効果的に保存されます。