Azure Kubernetes Fleet Manager を使用して、複数のクラスターで Kubernetes とノード イメージを更新する
多数のクラスターを管理するプラットフォーム管理者は、安全かつ予測可能な方法で複数のクラスターの更新 (ノード OS イメージまたは Kubernetes のバージョンのアップグレードなど) をステージングする際に問題を抱えていることがよくあります。 この課題に対処するため、Azure Kubernetes Fleet Manager (Fleet) では、更新実行を使って、複数のクラスター間で更新を調整できます。
更新実行はステージ、グループ、戦略で構成され、手動で 1 回だけ適用するか、自動アップグレード プロファイルを使って継続的な定期更新を自動的に適用することができます。 すべての更新実行 (手動または自動) では、メンバー クラスターのメンテナンス期間が優先されます。
このガイドでは、更新実行を構成して手動で実行する方法について説明します。
前提条件
このガイドで参照されている更新の戦略、実行、ステージ、グループについては、この機能の概念の概要に関する記事をご覧ください。
1 つ以上のメンバー クラスターを含む Fleet リソースが必要です。 そうでない場合は、クイックスタートに従って Fleet リソースを作成し、Azure Kubernetes Service (AKS) クラスターをメンバーとして参加させます。
以下の環境変数を設定します。
export GROUP=<resource-group> export FLEET=<fleet-name> export AKS_CLUSTER_ID=<aks-cluster-resource-id>
この記事の 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
更新実行の作成
更新実行では、クラスターのアップグレード シーケンスについて 2 つのオプションがサポートされています。
- 1 つずつ: クラスター アップグレード シーケンスの制御について注意する必要がない場合、
one-by-one
には、フリートのすべてのメンバー クラスターを一度に 1 つずつ順番にアップグレードする簡単な方法が用意されています。 - 更新グループとステージを使ってクラスターのシーケンスを制御する: クラスター アップグレード シーケンスを制御したい場合は、更新グループと更新ステージにメンバー クラスターを構成できます。 このシーケンスは、更新戦略の形式でテンプレートとして保存できます。 その後は、更新実行を作成する必要があるたびにシーケンスを定義するのではなく、更新戦略を使って更新実行を作成できます。
Note
更新実行では、ユーザーが AKS クラスター レベルで設定する計画メンテナンス期間が優先されます。 計画メンテナンス期間で構成されているメンバー クラスターの更新実行による処理方法について詳しくは、複数のメンバー クラスターを対象とする計画メンテナンスに関する記事をご覧ください。
すべてのクラスターを 1 つずつ更新する
Azure portal で、Azure Kubernetes Fleet Manager リソースに移動します。
サービス メニューの [設定] で、[複数のクラスターの更新]>[実行の作成] を選びます。
更新実行の名前を入力し、アップグレードの種類で [1 つずつ] を選びます。
[アップグレードのスコープ] で、次のいずれかのオプションを選びます。
- コントロール プレーンとノード プールの両方の Kubernetes バージョン
- クラスターのコントロール プレーンのみの Kubernetes バージョン
- ノード イメージのバージョンのみ
[ノード イメージ] で、次のいずれかのオプションを選びます。
- [最新のイメージ]: 更新実行内のすべての AKS クラスターを、そのリージョンのそのクラスターで利用できる最新のイメージに更新します。
- [一貫したイメージ]: 更新実行では、AKS クラスターが複数のリージョンに存在し、それらで利用できる最新のノード イメージが異なる可能性があります (詳しくは、リリース トラッカーに関する記事をご覧ください)。 更新の実行では、一貫性を実現するために、これらすべてのリージョンに共通の最新イメージが選択されます。
[作成] を選んで更新実行を作成します。
グループとステージを使用してクラスターを更新する
更新ステージを使って更新実行を定義し、異なる更新グループに対する更新の適用の順序を指定できます。 たとえば、最初の更新ステージでテスト環境のメンバー クラスターを更新し、2 番目の更新ステージで運用環境のメンバー クラスターを更新します。 更新ステージ間の待機時間を指定することもできます。 このシーケンスは、更新戦略の形式でテンプレートとして保存できます。
Azure portal で、Azure Kubernetes Fleet Manager リソースに移動します。
サービス メニューの [設定] で、[複数のクラスターの更新]>[実行の作成] を選びます。
更新実行の名前を入力してから、更新シーケンスの種類として [ステージ] を選びます。
[ステージの作成] を選んでから、ステージの名前とステージ間の待ち時間を入力します。
このステージに含める更新グループを選びます。 更新グループを特定のシーケンスで更新する場合は、その順序を指定することもできます。 完了したら [作成] を選択します。
[アップグレードのスコープ] で、次のいずれかのオプションを選びます。
- コントロール プレーンとノード プールの両方の Kubernetes バージョン
- クラスターのコントロール プレーンのみの Kubernetes バージョン
- ノード イメージのバージョンのみ
[ノード イメージ] で、次のいずれかのオプションを選びます。
- [最新のイメージ]: 更新実行内のすべての AKS クラスターを、そのリージョンのそのクラスターで利用できる最新のイメージに更新します。
- [一貫したイメージ]: 更新実行では、AKS クラスターが複数のリージョンに存在し、それらで利用できる最新のノード イメージが異なる可能性があります (詳しくは、リリース トラッカーに関する記事をご覧ください)。 更新の実行では、一貫性を実現するために、これらすべてのリージョンに共通の最新イメージが選択されます。
[作成] を選んで更新実行を作成します。
更新実行を作成するたびにステージとその順序を指定すると、繰り返し作業が複雑になる可能性があります。 更新戦略を使用すると、更新実行のためのテンプレートを保存できるため、このプロセスを簡略化できます。 詳細については、更新戦略の作成と使用に関する記事を参照してください。
[複数のクラスターの更新] メニューで、更新実行を選んでから、[開始] を選びます。
更新戦略を使用して更新実行を作成する
更新実行を作成するには、ステージ、グループ、順序を毎回指定する必要があります。 更新戦略を使用すると、更新実行のためのテンプレートを保存できるため、このプロセスを簡略化できます。
Note
同じ更新戦略から、一意の名前を持つ複数の更新実行を作成できます。
更新戦略は、次のいずれかの方法を使って作成できます。
更新実行を作成するときに更新戦略を保存する
更新実行を管理する
以降のセクションでは、Azure portal と Azure CLI を使って更新実行を管理する方法について説明します。
詳しくは、実行、ステージ、グループでの更新実行の状態とスキップ動作の概念の概要に関する記事をご覧ください。
次のステップ
Azure Kubernetes Service