適用対象: ✔️ ハブ クラスターを含む Fleet Manager
この記事では、Fleet Manager を使用して、複数のクラスター上の名前空間のリソース クォータ、ネットワーク ポリシー、および委任されたユーザー アクセスを定義するマネージドフリート名前空間を作成および構成する方法について説明します。
アクセス権を持つ既存の Managed Fleet 名前空間を表示またはアクセスする場合は、「 Managed Fleet 名前空間の表示とアクセス」を参照してください。
Important
Azure Kubernetes Fleet Manager のプレビュー機能は、セルフサービス、オプトイン ベースで利用できます。 プレビューは、"現状有姿のまま" および "利用可能な限度" で提供され、サービス レベル アグリーメントおよび限定保証から除外されるものとします。 Azure Kubernetes Fleet Manager のプレビューは、ベストエフォート ベースでカスタマー サポートによって部分的にカバーされます。 そのため、これらの機能は運用環境での使用を目的としていません。
既知の制限事項
- Managed Fleet 名前空間が単一クラスターの マネージド Kubernetes 名前空間 を利用する場合、その逆も同様に、所有権が競合する可能性があります。 回避するには、マネージドフリートと Kubernetes 名前空間の両方に対して
keepの削除ポリシーを使用します。 - 指定するクラスターは、マネージド フリート名前空間を制御する同じフリート マネージャーで管理されるフリートの一部でなければなりません。
- クラスターには、少なくとも 1.30.0 の Kubernetes バージョンが必要です。 このバージョンより下のクラスター では、 クラスター上のユーザーが配置された Kubernetes リソースを変更できなくなります。
- マネージドフリート名前空間スコープに割り当てられた RBAC ロールは、同じ名前のメンバー クラスター上のアンマネージド Kubernetes 名前空間に同等のアクセス権を付与します。
開始する前に
アクティブなサブスクリプションを含む Azure アカウントが必要です。 無料でアカウントを作成できます。
ハブ クラスターを備えた Fleet Manager が必要です。 ない場合は、「少なくとも 1 つの Azure Kubernetes Service (AKS) クラスターを作成してフリートに参加させる」を参照してください。
概要を参照して、Managed Fleet 名前空間の概念 を理解します。
この記事を完了するには、Azure CLI バージョン 2.78.0 以降がインストールされている必要があります。 インストールまたはアップグレードする必要には、「Azure CLI のインストール」をご覧ください。
fleetAzure CLI 拡張機能バージョン 1.8.0 以降が必要です。 [az extension add][az-extension-add] コマンドとaz extension updateコマンドを使用して、インストールして最新バージョンに更新できます。# Install the extension az extension add --name fleet # Update the extension az extension update --name fleetaz extension showコマンドを使用して、フリート拡張機能のバージョンが少なくとも 1.8.0 であることを確認します。az extension show --name fleetサブスクリプション ID、リソース グループ、フリート、フリート メンバーに次の環境変数を設定します。
export SUBSCRIPTION_ID=<subscription-id> export GROUP=<resource-group-name> export FLEET=<fleet-name> export FLEET_ID=<fleet-id>az account setコマンドを使用して、既定の Azure サブスクリプションを設定します。az account set --subscription ${SUBSCRIPTION_ID}
新しいマネージド フリート名前空間を作成する
az fleet namespace create コマンドを使用して、新しいマルチクラスターマネージド名前空間を作成します。
az fleet namespace create \
--resource-group $GROUP \
--fleet-name $FLEET \
--name my-managed-namespace \
--annotations annotation1=value1 annotation2=value2 \
--labels team=myTeam label2=value2 \
--cpu-requests 1m \
--cpu-limits 4m \
--memory-requests 1Mi \
--memory-limits 4Mi \
--ingress-policy allowAll \
--egress-policy allowAll \
--delete-policy keep \
--adoption-policy never
マネージド フリート名前空間へのアクセスをデリゲートする
組み込みロールのいずれかを使用して、メンバー クラスター間で Managed Fleet 名前空間のユーザーにアクセス権を付与できるようになりました。
az role assignment create コマンドを使用してロールの割り当てを作成します。
次の例では、ユーザーにメンバー クラスターに対する Azure Kubernetes Fleet Manager RBAC ライター ロールを、my-managed-namespace マネージド フリート名前空間を受け取る任意のクラスターについて割り当てます。
az role assignment create \
--role "Azure Kubernetes Fleet Manager RBAC Writer for Member Clusters" \
--assignee <USER-ENTRA-ID> \
--scope "$FLEET_ID/managedNamespaces/my-managed-namespace"
マネージド フリート名前空間にメンバー クラスターを追加する
必要なメンバー クラスター名の一覧を指定することで、マネージド名前空間をデプロイするメンバー クラスターを制御できます。 指定したリストにないメンバー クラスターで同じ名前のアンマネージド名前空間は変更されません。
az fleet namespace create パラメーターで --member-cluster-names コマンドを使用して、マネージド名前空間をデプロイするメンバー クラスターの完全な一覧を指定します。 マネージド名前空間は、リスト内のすべてのクラスターに伝達されます。
この例では、マネージド名前空間は、 clusterA、 clusterB、および clusterCにデプロイされます。
az fleet namespace create \
--resource-group $GROUP \
--fleet-name $FLEET \
--name my-managed-namespace \
--member-cluster-names clusterA clusterB clusterC
Managed Fleet 名前空間からメンバー クラスターを削除する
マネージド フリート名前空間からメンバー クラスターを削除する場合、その名前空間を適用するメンバー クラスターの一覧から除外します。
az fleet namespace create パラメーターで --member-cluster-names コマンドを使用して、マネージド名前空間を維持するメンバー クラスターの一覧を指定します。 マネージド名前空間は、一覧から除外されたすべてのクラスターから削除されます。
この例では、マネージド名前空間が clusterCから削除されます。
az fleet namespace create \
--resource-group $GROUP \
--fleet-name $FLEET \
--name my-managed-namespace \
--member-cluster-names clusterA clusterB
マネージド フリート名前空間の構成を表示する
az fleet namespace show コマンドを使用して、特定のマルチクラスターマネージド名前空間の詳細を表示します。
az fleet namespace show \
--resource-group $GROUP \
--fleet-name $FLEET \
--name my-managed-namespace \
-o table
出力は、次の出力例のようになります。
AdoptionPolicy DeletePolicy ETag Location Name ProvisioningState ResourceGroup
-------------- ------------ ------------------------------------- -------- -------------------- ----------------- -------------
Always Delete "aaaaaaaa-0b0b-1c1c-2d2d-333333333333 westus2 my-managed-namespace Succeeded test-rg
マネージドフリート名前空間を削除する
az fleet namespace delete コマンドを使用して、マルチクラスターマネージド名前空間を削除します。
az fleet namespace delete \
--resource-group $GROUP \
--fleet-name $FLEET \
--name my-managed-namespace
Important
マネージド名前空間に配置された RBAC ロールは、削除ポリシーの構成に関係なく、マネージド名前空間が削除されると削除されます。
次のステップ
- 概要を参照して、Managed Fleet 名前空間の概念を理解します。
- アクセス権を 持つ Managed Fleet 名前空間を表示およびアクセスする方法について説明します。
Azure Kubernetes Service