次の方法で共有


Azure Kubernetes Fleet Manager を使用して、複数のクラスターで Kubernetes とノード イメージを更新する

多数のクラスターを管理するプラットフォーム管理者は、安全かつ予測可能な方法で複数のクラスターの更新 (ノード OS イメージまたは Kubernetes のバージョンのアップグレードなど) をステージングする際に問題を抱えていることがよくあります。 この課題に対処するため、Azure Kubernetes Fleet Manager (Fleet) では、更新実行を使って、複数のクラスター間で更新を調整できます。

更新実行はステージ、グループ、戦略で構成され、手動で 1 回だけ適用するか、自動アップグレード プロファイルを使って継続的な定期更新を自動的に適用することができます。 すべての更新実行 (手動または自動) では、メンバー クラスターのメンテナンス期間が優先されます。

このガイドでは、更新実行を構成して手動で実行する方法について説明します。

フリート リソースに関する Azure portal のペインのスクリーンショット。メンバー クラスターの Kubernetes バージョンと、メンバー クラスターのすべてのノード プールで使用中のノード イメージが示されています。

前提条件

  • このガイドで参照されている更新の戦略、実行、ステージ、グループについては、この機能の概念の概要に関する記事をご覧ください。

  • 1 つ以上のメンバー クラスターを含む Fleet リソースが必要です。 そうでない場合は、クイックスタートに従って Fleet リソースを作成し、Azure Kubernetes Service (AKS) クラスターをメンバーとして参加させます。

  • 以下の環境変数を設定します。

    export GROUP=<resource-group>
    export FLEET=<fleet-name>
    
  • この記事の Azure CLI の手順に従って行う場合は、Azure CLI バージョン 2.58.0 以降がインストールされている必要があります。 インストールとアップグレードについては、「Azure CLI のインストール」を参照してください。

  • 次のコマンドを実行してインストールできる fleet Azure CLI 拡張機能も必要です。

    az extension add --name fleet
    

    リリースされている最新バージョンの拡張機能に更新するには、az extension update コマンドを実行します。

    az extension update --name fleet
    

更新実行の作成

Note

更新実行では、ユーザーが AKS クラスター レベルで設定する計画メンテナンス期間が優先されます。 計画メンテナンス期間で構成されているメンバー クラスターの更新実行による処理方法について詳しくは、複数のメンバー クラスターを対象とする計画メンテナンスに関する記事をご覧ください。

更新実行では、クラスターのアップグレード シーケンスについて 2 つのオプションがサポートされています。

  • 1 つずつ: クラスター アップグレード シーケンスの制御について注意する必要がない場合、one-by-one には、フリートのすべてのメンバー クラスターを一度に 1 つずつ順番にアップグレードする簡単な方法が用意されています。
  • 更新グループとステージを使ってクラスターのシーケンスを制御する: クラスター アップグレード シーケンスを制御したい場合は、更新グループと更新ステージにメンバー クラスターを構成できます。 このシーケンスは、更新戦略の形式でテンプレートとして保存できます。 その後は、更新実行を作成する必要があるたびにシーケンスを定義するのではなく、更新戦略を使って更新実行を作成できます。

すべてのクラスターを 1 つずつ更新する

  1. Azure portal で、Azure Kubernetes Fleet Manager リソースに移動します。

  2. サービス メニューの [設定] で、[複数のクラスターの更新]>[実行の作成] を選びます。

  3. 更新実行の名前を入力し、アップグレードの種類で [1 つずつ] を選びます。

    Azure Kubernetes Fleet Manager でクラスターを 1 つずつ更新する更新実行を作成するための Azure portal のペインのスクリーンショット。

  4. [アップグレードのスコープ] で、次のいずれかのオプションを選びます。

    • コントロール プレーンとノード プールの両方の Kubernetes バージョン
    • クラスターのコントロール プレーンのみの Kubernetes バージョン
    • ノード イメージのバージョンのみ
  5. [ノード イメージ] で、次のいずれかのオプションを選びます。

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

    更新実行を作成するための Azure portal のペインのスクリーンショット。[アップグレード スコープ] セクションが表示されます。

  6. [作成] を選んで更新実行を作成します。

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

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

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

フリートにメンバー クラスターを追加するときにグループに割り当てる

  1. Azure portal で、Azure Kubernetes Fleet Manager リソースに移動します。

  2. サービス メニューの [設定] で、[メンバー クラスター]>[追加] を選びます。

    Azure Kubernetes Fleet Manager メンバー クラスターに関する Azure portal のページのスクリーンショット。

  3. 追加するクラスターを選んでから、[次へ: 確認と追加] を選びます。

  4. クラスターを割り当てる更新グループの名前を入力してから、[追加] を選びます。

既存のフリート メンバーを更新グループに割り当てる

  1. Azure portal で、Azure Kubernetes Fleet Manager リソースに移動します。

  2. サービス メニューの [設定] で、[メンバー クラスター] を選びます。

  3. 更新グループに割り当てる 1 つまたは複数のクラスターを選んでから、[更新グループの割り当て] を選びます

    既存のメンバー クラスターをグループに割り当てるための Azure portal のページのスクリーンショット。

  4. クラスターを割り当てる更新グループの名前を入力してから、[割り当て] を選びます。

    メンバー クラスターのグループを更新するためのフォームが示されている、メンバー クラスターに関する Azure portal のページのスクリーンショット。

Note

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

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

更新ステージを使って更新実行を定義し、異なる更新グループに対する更新の適用の順序を指定できます。 たとえば、最初の更新ステージでテスト環境のメンバー クラスターを更新し、2 番目の更新ステージで運用環境のメンバー クラスターを更新します。 更新ステージ間の待機時間を指定することもできます。

  1. Azure portal で、Azure Kubernetes Fleet Manager リソースに移動します。

  2. サービス メニューの [設定] で、[複数のクラスターの更新]>[実行の作成] を選びます。

  3. 更新実行の名前を入力してから、更新シーケンスの種類として [ステージ] を選びます。

    更新実行内でステージ モードを選択するための Azure portal ページのスクリーンショット。

  4. [ステージの作成] を選んでから、ステージの名前とステージ間の待ち時間を入力します。

    ステージを作成して待ち時間を定義するための Azure portal のページのスクリーンショット。

  5. このステージに含める更新グループを選びます。 更新グループを特定のシーケンスで更新する場合は、その順序を指定することもできます。 完了したら [作成] を選択します。

    アップグレード グループの選択が示されている、ステージ作成のための Azure portal のページのスクリーンショット。

  6. [アップグレードのスコープ] で、次のいずれかのオプションを選びます。

    • コントロール プレーンとノード プールの両方の Kubernetes バージョン
    • クラスターのコントロール プレーンのみの Kubernetes バージョン
    • ノード イメージのバージョンのみ
  7. [ノード イメージ] で、次のいずれかのオプションを選びます。

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

    更新実行を作成するための Azure portal のペインのスクリーンショット。[アップグレード スコープ] セクションが表示されます。

  8. [作成] を選んで更新実行を作成します。

    更新実行を作成するたびにステージとその順序を指定すると、繰り返し作業が複雑になる可能性があります。 更新戦略を使用すると、更新実行のためのテンプレートを保存できるため、このプロセスを簡略化できます。 詳細については、更新戦略の作成と使用に関する記事を参照してください。

  9. [複数のクラスターの更新] メニューで、更新実行を選んでから、[開始] を選びます。

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

更新実行を作成するには、ステージ、グループ、順序を毎回指定する必要があります。 更新戦略を使用すると、更新実行のためのテンプレートを保存できるため、このプロセスを簡略化できます。

Note

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

更新戦略は、次のいずれかの方法を使って作成できます。

更新実行を作成するときに更新戦略を保存する

  • Azure portal で更新実行を作成するときに更新戦略を保存します。

    更新戦略として保存されている更新実行ステージを示す Azure portal のスクリーンショット。

新しい更新戦略を作成し、更新実行を作成するときにそれを参照する

  1. [複数のクラスターの更新] ページに移動し、[戦略]>[戦略の作成] を選びます。

    更新戦略の作成を示す Azure portal のスクリーンショット。

  2. 更新戦略の詳細を構成してから、[作成] を選びます。

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

    新しい更新実行の作成を示す Azure portal のスクリーンショット。[既存の戦略からコピー] ボタンが強調されています。

更新実行を管理する

以降のセクションでは、Azure portal と Azure CLI を使って更新実行を管理する方法について説明します。

  • Fleet リソースの [複数のクラスターの更新] ページで、[未開始] または [失敗] の状態の更新実行を [開始] できます。

    [未開始] 状態の更新実行を開始する方法を示す Azure portal のスクリーンショット。

  • Fleet リソースの [複数のクラスターの更新] ページで、現在 [実行中] の更新実行を [停止] できます。

    [実行中] 状態の更新実行を停止する方法を示す Azure portal のスクリーンショット。

  • [未開始][失敗]、または [実行中] 状態の更新実行では、任意の [ステージ] を選んでアップグレードを [スキップ] できます。

    更新実行の特定のステージのアップグレードをスキップする方法を示す Azure portal のスクリーンショット。

    同様に、更新グループまたはメンバー クラスター レベルでアップグレードをスキップすることもできます。

詳しくは、実行、ステージ、グループでの更新実行の状態とスキップ動作の概念の概要に関する記事をご覧ください。

次のステップ

Azure Kubernetes Fleet Manager についてさらに詳しく学びます。