Azure Kubernetes Fleet Manager を使用して、複数のクラスター間で Kubernetes とノード イメージのアップグレードを自動化する (プレビュー)
多数のクラスターを管理するプラットフォーム管理者は、安全かつ予測可能な方法で複数のクラスターの更新 (ノード OS イメージまたは Kubernetes のバージョンのアップグレードなど) をステージングする際に問題を抱えていることがよくあります。 この課題に対処するために、Azure Kubernetes Fleet Manager (フリート) では、更新の実行を使用して、複数のクラスター間で更新を調整できます。
更新の実行はステージ、グループ、および戦略で構成され、1 回限りの更新の場合は手動で適用するか、または自動アップグレード プロファイルを使用する継続的な定期更新の場合は自動的に適用できます。 すべての更新の実行 (手動または自動) では、メンバー クラスターのメンテナンス期間が優先されます。
この記事では、自動アップグレード プロファイルを使用して、Kubernetes またはノード イメージの新しいバージョンが使用可能になったときに更新の実行を自動的にトリガーする方法について説明します。
重要
Azure Kubernetes Fleet Manager のプレビュー機能は、セルフサービス、オプトイン ベースで利用できます。 プレビューは、"現状有姿のまま" および "利用可能な限度" で提供され、サービス レベル アグリーメントおよび限定保証から除外されるものとします。 Azure Kubernetes Fleet Manager のプレビューは、ベストエフォート ベースでカスタマー サポートによって部分的にカバーされます。 そのため、これらの機能は、運用環境での使用を意図していません。
前提条件
このガイドで参照されている構成に関する説明を提供する、自動アップグレード プロファイルの概念の概要に関するページをお読みください。
1 つ以上のメンバー クラスターを持つフリート リソースが存在する必要があります。 そうでない場合は、クイックスタートに従って Fleet リソースを作成し、Azure Kubernetes Service (AKS) クラスターをメンバーとして参加させます。
更新戦略を使用する場合は、更新実行方法に関する記事の手順を使用して構成する必要があります。 自動アップグレード プロファイルで使用するには、更新戦略リソース識別子が必要です。
以下の環境変数を設定します。
export GROUP=<resource-group> export FLEET=<fleet-name> export AUTOUPGRADEPROFILE=<upgrade-profile-name> # Optional export STRATEGYID=<strategy-id> export CLUSTER=<aks-cluster-name>
Azure CLI バージョン 2.61.0 以降がインストールされている必要があります。 インストールとアップグレードについては、「Azure CLI のインストール」を参照してください。
次のコマンドを実行してインストールできる
fleet
Azure CLI 拡張機能バージョン 1.3.0 以降も必要です。az extension add --name fleet
次のコマンドを実行して、リリースされた最新バージョンの拡張機能に更新します:
az extension update --name fleet
Note
自動アップグレードでトリガーされる更新実行では、ユーザーが AKS クラスター レベルで設定した計画メンテナンス期間が優先されます。 詳細については、計画メンテナンス期間が構成されているメンバー クラスターが更新実行で処理される方法について説明している「複数のメンバー クラスターを対象とする計画メンテナンス」をご覧ください。
自動アップグレード プロファイルを作成する
Azure portal で、Azure Kubernetes Fleet Manager リソースに移動します。
サービス メニューの [設定] で、[複数のクラスターの更新]>[プロファイルの自動アップグレード] を選択します。
[作成] を選択し、プロファイルの名前を入力して、プロファイルが [有効] になっているかどうかを選択します。 無効になっている自動アップグレード プロファイルは、新しいバージョンがリリースされたときにトリガーされません。
更新順序を [ステージごと] または [1 つずつ] から選択します。
[チャネル]で、次のいずれかのオプションを選択します。
- 安定 - N-1 Kubernetes の一般提供マイナー バージョンのパッチを使用してクラスターを更新します。
- 高速 - 最新の (N) Kubernetes の一般提供マイナー バージョンのパッチを使用してクラスターを更新します。
- ノード イメージ - ノード イメージのバージョンのみを更新します。
[安定] または [高速] のいずれかのチャネルを選択すると、ノード イメージの更新を適用する方法を選択できます。
- 最新のイメージ: 自動アップグレード プロファイル内のすべての AKS クラスターを、その Azure リージョンのそのクラスターで使用可能な最新のイメージに更新します。
- 一貫性のあるイメージ: 自動アップグレードで、複数の Azure リージョンに AKS クラスターを配置することができます。ここで利用可能な最新のノード イメージは異なる場合があります (詳細はリリース トラッカーをご確認ください)。 このオプションを選択すると、一貫性を実現するために、自動アップグレードによってすべての Azure リージョン内での最新の共通イメージが選択されます。
Note
[ノード イメージ] チャネルでは常に一貫性のあるイメージが使用されます。
[ステージ] を使用して更新シーケンスを選択した場合は、[戦略] を選択または作成します。
[作成] を選択して、自動アップグレード プロファイルを作成します。
自動アップグレード プロファイルを表示する
自動アップグレード プロファイルを削除する
Note
進行中の更新実行の自動アップグレード プロファイルを削除した場合、続行される既存の更新プログラムの実行には影響しません。
自動アップグレードを検証する
自動アップグレードが行われるのは、新しい Kubernetes またはノード イメージが使用可能になった場合のみです。 自動アップグレードがトリガーされると、リンクされた更新プログラムの実行が作成されるため、[更新プログラムの実行] を管理して、自動アップグレードの結果を確認できます。
次のように、既存のバージョンをベースラインとして確認することもできます。
# Get Kubernetes version for a member cluster
az aks show \
--resource-group $GROUP \
--name $CLUSTER \
--query currentKubernetesVersion
# Get NodeImage version for a member cluster
az aks show \
--resource-group $GROUP \
--name $CLUSTER \
--query "agentPoolProfiles[].{name:name,mode:mode, nodeImageVersion:nodeImageVersion, osSku:osSku, osType:osType}"
更新の実行が完了したら、これらのコマンドを再実行し、デプロイされている更新バージョンを表示できます。
Azure Kubernetes Service