適用対象: ✔️ Fleet Manager ✔️ ハブ クラスターを持つFleet Manager
管理者は、一連のステージとグループを定義することで、フリート管理クラスターへの更新のシーケンスを制御できます。 これらのステージとグループ内で承認と一時停止を行うタイミングを構成できます。 構成全体を更新戦略として保存でき、更新プログラムの実行や自動アップグレードとは別に管理できるため、必要に応じて戦略を再利用できます。
この記事では、グループおよびステージを使用して更新戦略を定義する方法について説明します。
前提条件
Fleet 更新の概念の概要をお読みください。このガイドで参照する更新実行、ステージ、グループ、戦略について説明しています。
1 つ以上のメンバー クラスターを持つフリート リソースが存在する必要があります。 そうでない場合は、クイックスタートに従って Fleet リソースを作成し、Azure Kubernetes Service (AKS) クラスターをメンバーとして参加させます。
以下の環境変数を設定します。
export GROUP=<resource-group> export FLEET=<fleet-name> export CLUSTERID=<aks-cluster-resource-id> export STRATEGY=<strategy-name>この記事の Azure CLI の手順に従っている場合は、Azure CLI バージョン 2.70.0 以降がインストールされている必要があります。 インストールとアップグレードについては、「Azure CLI のインストール」を参照してください。
fleetAzure CLI 拡張機能バージョン 1.6.0 以降も必要です。これは、次のコマンドを実行してインストールできます。az extension add --name fleetリリースされている最新バージョンの拡張機能に更新するには、
az extension updateコマンドを実行します。az extension update --name fleet
更新グループを使用して更新戦略を作成する
クラスターは、1 つの更新グループに割り当てることで、更新戦略で選択できます。 これらの更新グループをステージに割り当てる更新戦略を定義できます。 更新ステージ内では、更新が各更新グループに並行して適用されます。 更新グループ内では、メンバー クラスターが順番に更新されます。
注意
フリート メンバーは 1 つの更新グループにしか所属できませんが、1 つの更新グループには複数のフリート メンバーを割り当てることができます。 更新グループ自体は、別のリソースの種類ではありません。 更新グループは、単にフリート メンバーからの参照を表す文字列です。 そのため、共通の更新グループを参照するすべてのフリート メンバーが削除されると、その特定の更新グループも存在しなくなります。
クラスターを更新グループに割り当てる
フリートにメンバー クラスターを追加するときにグループに割り当てる
az fleet member create コマンドを使用してメンバー クラスターをフリートに追加するときに、--update-group パラメーターを更新グループの名前に設定して、メンバー クラスターを更新グループに割り当てます。
az fleet member create \
--resource-group $GROUP \
--fleet-name $FLEET \
--name member1 \
--member-cluster-id $CLUSTERID \
--update-group group-1a
既存のフリート メンバーを更新グループに割り当てる
az fleet member update コマンドを使い、--update-group フラグを更新グループの名前に設定して、既存のフリート メンバーを更新グループに割り当てます。
az fleet member update \
--resource-group $GROUP \
--fleet-name $FLEET \
--name member1 \
--update-group group-1
更新戦略を作成する
更新戦略は 1 つ以上のステージで構成され、1 つのステージには、1 つ以上の更新グループを含めることができます。
Azure portal で、Azure Kubernetes Fleet Manager リソースに移動します。
サービス メニューの [設定] の下で、[複数クラスターの更新]>[戦略] の順に選択し、[作成] を選択します。
戦略の名前を入力します。
ページを初めて表示したときに、更新戦略の説明図が表示されます。これは、戦略がどのように機能をするかを視覚化するのに役立ちます。
[ステージの作成] を選択し、次の情報を入力します。
- ステージ名 - ステージに名前を付ける - 戦略内のすべてのステージ名で一意である必要があります。
- (省略可能) ステージの承認 - このステージが開始される前または完了後に承認を待つ場合は、このオプションを選択します。 詳細については、「 グループとステージの更新に承認を追加する」を参照してください。
- (省略可能) ステージ後の一時停止 - 次のステージに進む前に一時停止することを定義する場合、このオプションをオンにします。
- (省略可能) 一時停止期間 - 定義済みの期間を選択するか、秒単位でカスタム値を入力します。
ステージに 1 つ以上の 更新グループ を割り当て、[ 作成] を選択します。
注意
各更新ステージの更新グループの最大数は 50 です。
このシナリオでは、Azure portal プロセスに使用される詳細と一致するステージとグループを作成します。
更新実行のステージとグループを定義する JSON ファイルを作成します。 ステージは、JSON ファイルに表示される順序で順番に実行されます。 グループは各ステージ内で並列に実行されるため、順序付けは重要ではありません。 次のサンプル ファイル (example-stages.json) は、2 つのステージを含む戦略を定義し、オプションの
maxConcurrency設定を含みます。{ "stages": [ { "name": "stage-1", "maxConcurrency": "7", "groups": [ { "name": "group-1", "maxConcurrency": "3" }, { "name": "group-2", "maxConcurrency": "50%" } ], "afterStageWaitInSeconds": 300 }, { "name": "stage-2", "maxConcurrency": "100%", "groups": [ { "name": "group-3", "maxConcurrency": "2" } ] } ] }注意
maxConcurrencyフィールドは省略可能であり、ステージ レベルまたはグループ レベルで同時にアップグレードできるクラスターの数を制御します。 フリート全体でクラスターをより迅速にアップグレードするには大きな値を使用し、問題が発生した際の影響範囲を抑え、より制御されたロールアウトを行うには、小さな値を使用します。この例では、
stage-1maxConcurrencyを"7"に設定します。これにより、このステージの最大"7"クラスターを同時にアップグレードできます。stage-1内では、group-1はコンカレンシーを"3"クラスターに制限します。つまり、このグループ内の最大"3"を同時にアップグレードできます。group-2では、最大"50%"のクラスターを同時にアップグレードできます (たとえば、グループに 4 つのクラスターが含まれている場合、最大 2 つを同時にアップグレードできます)。値には、固定整数 (
"3"など) またはパーセンテージ (たとえば、"100%") を指定できます。 省略すると、既定値が適用されます。 これらの値の解決方法とその上限の詳細については、「 最大コンカレンシー (プレビュー)」を参照してください。az fleet updatestrategy createコマンドを使い、--stagesフラグを JSON ファイルの名前に設定して、新しい更新戦略を作成します。az fleet updatestrategy create \ --resource-group $GROUP \ --fleet-name $FLEET \ --name $STRATEGY \ --stages example-stages.json
次のステップ
更新戦略は、手動による更新実行または自動アップグレード プロファイルの一部として使用できます。 参照: