Azure Kubernetes Fleet Manager を使用して、複数のクラスター全体で更新を調整する

多数のクラスターが含まれる Kubernetes フリートを管理するプラットフォーム管理者は、多くの場合、複数のクラスター間で安全かつ予測可能な方法で更新プログラムをステージングするという問題に直面します。 この問題に対処するために、Kubernetes Fleet Manager (Fleet) を使用すると、更新プログラムの実行、ステージ、グループ、および戦略を使用して、複数のクラスター間で更新プログラムを調整できます。

Screenshot of the Azure portal pane for a fleet resource, showing member cluster Kubernetes versions and node images in use across all node pools of member clusters.

前提条件

  • 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 つずつ更新する

  1. Azure Kubernetes Fleet Manager リソースのページで、[Multi-cluster update] (マルチクラスター更新) メニューに移動し、[作成] を選択します。

  2. [One by one] (1 つずつ)を選択するか、[Stages] (ステージ)を選択できます。

    Screenshot of the Azure portal pane for creating update runs that update clusters one by one in Azure Kubernetes Fleet Manager.

  3. アップグレード スコープでは、 Kubernetes バージョンとノード イメージ バージョンの両方を更新するか、ノード イメージバージョンのみを更新するかを選択できます。

    Screenshot of the Azure portal pane for creating update runs. The upgrade scope section is shown.

    ノード イメージの場合は、次のオプションを使用できます。

    • [Latest] (最新): 更新の実行内のすべての AKS クラスターを、そのリージョンのそのクラスターで使用可能な最新のイメージに更新します。
    • [Consistent] (一貫性): 更新の実行では、AKS クラスターが複数のリージョンに存在し、それらのリージョンでは利用可能な最新のノード イメージが異なる可能性があるためです (詳細については、リリース トラッカーを確認してください)。 更新の実行では、一貫性を実現するために、これらすべてのリージョンに共通の最新イメージが選択されます。

特定の順序でクラスターを更新する

更新のグループとステージを使用すると、クラスターを更新するときに更新の実行で従うシーケンスをより細かく制御できます。 更新ステージ内では、すべての異なる更新グループに更新プログラムが並列で適用されます。更新グループ内では、メンバー クラスターが順番に更新されます。

クラスターを更新グループに割り当てる

次の 2 つの方法のいずれかで、メンバー クラスターを特定の更新グループに割り当てることができます。

  • フリートにメンバー クラスターを追加するときにグループに割り当てる。 次に例を示します。
  1. Azure Kuberntes Fleet Manager リソースのページで、[Member clusters] (メンバー クラスター) に移動します。

    Screenshot of the Azure portal page for Azure Kubernetes Fleet Manager member clusters.

  2. メンバー クラスターが属する更新グループを指定します。

    Screenshot of the Azure portal page for adding member clusters to Azure Kubernetes Fleet Manager and assigning them to groups.

  • 2 番目の方法は、既存のフリート メンバーを更新グループに割り当てることです。 次に例を示します。
  1. Azure Kuberntes Fleet Manager リソースのページで、[Member clusters] (メンバー クラスター) に移動します。 目的のメンバー クラスターを選択し、[Assign update group] (更新グループの割り当て) を選択します。

    Screenshot of the Azure portal page for assigning existing member clusters to a group.

  2. グループ名を指定し、[割り当て] を選択します。

    Screenshot of the Azure portal page for member clusters that shows the form for updating a member cluster's group.

Note

すべてのフリート メンバーは 1 つの更新グループの一部にのみなることができますが、更新グループには複数のフリート メンバーを含めることができます。 更新グループ自体は、別のリソースの種類ではありません。 更新グループは、単にフリート メンバーからの参照を表す文字列です。 そのため、共通の更新グループを参照しているすべてのフリート メンバーが削除されると、その特定の更新グループも存在しなくなります。

更新の実行とステージを定義する

更新プログラムの実行を更新ステージを使用して定義すると、更新プログラムの適用をさまざまな更新グループに順番に並べ替えることができます。 たとえば、最初の更新ステージではテスト環境メンバー クラスターを更新し、2 番目の更新ステージではその後、運用環境メンバー クラスターを更新します。 更新ステージ間の待機時間を指定することもできます。

  1. Azure Kubernetes Fleet Manager リソースのページで、[Multi-cluster update] (マルチクラスター更新) に移動し、[作成] を選択します。

  2. [ステージ] を選択し、目的のアップグレード スコープに応じて [Node image (latest) + Kubernetes version] (ノード イメージ (最新) + Kubernetes バージョン) または [Node image (latest)] (ノード イメージ (最新)) のいずれかを選択します。

  3. [ステージ] で、[ステージの作成] を選択します。 ここで、ステージ名と各ステージの後の待機期間を指定できます。

    Screenshot of the Azure portal page for creating a stage and defining wait time.

  4. このステージに含める更新グループを選択します。

    Screenshot of the Azure portal page for stage creation that shows the selection of upgrade groups.

  5. すべてのステージを定義し、[上へ移動][下へ移動] のコントロールを使用してそれらを並べ替えた後で、更新実行の作成に進みます。

  6. [Multi-cluster update] (マルチクラスター更新) メニューで、更新実行を選択し、[開始] を選択します。

更新戦略を使用して更新実行を作成する

前のセクションで、更新実行を作成するには、ステージ、グループ、およびそれらの順序を毎回指定する必要がありました。 更新戦略を使用すると、更新の実行のためのテンプレートを格納できるため、これを簡略化できます。

Note

同じ更新戦略から、一意の名前を持つ複数の更新の実行を作成できます。

更新の実行を作成するときに、更新戦略を同時に作成するオプションが表示され、この実行が、後続の更新の実行のためのテンプレートとして効果的に保存されます。

  1. 更新の実行の作成時に更新戦略を保存すると、次のようになります。

    A screenshot of the Azure portal showing update run stages being saved as an update strategy.

  2. 作成した更新戦略は、後で新しい更新の実行を作成するときに参照できます。

    A screenshot of the Azure portal showing the creation of a new update run. The 'Copy from existing strategy' button is highlighted.