有効にすると、Fleet Manager ハブ クラスターは、リソース 配置を使用したメンバー クラスター間で Kubernetes リソースを伝達する際の中央管理ポイントとして機能します。
Fleet Manager ハブ クラスターとは
Azure Kubernetes Fleet Manager では、ハブ クラスターは複数のメンバー クラスターを管理する上で重要な役割を果たしますが、オプションです。
ハブ クラスターは、 KubeFleet のマネージド バージョンを使用して、リソースの配置と Fleet マネージド名前空間を容易にします。
この構成では、フリートは次のコンポーネントで構成されます。
- fleet-hub-agent: ハブ クラスター内のすべてのフリート関連のカスタム リソース (CR) を作成および調整する Kubernetes コントローラー。
- fleet-member-agent: メンバー クラスター内のすべてのフリート関連の CR を作成および調整する Kubernetes コントローラー。 このコントローラーは、ハブ クラスターから最新の CR をプルし、必要な状態に合わせてメンバー クラスターを一貫して調整します。
ハブ クラスターの構成
Fleet Manager ハブ クラスターは、次のプロパティを持つフル マネージド Azure Kubernetes Service (AKS) クラスターです:
-
クラスター名と場所: ハブ クラスターは常に
hubという名前で、Fleet Manager と同じ Azure リージョンに作成されます。 -
ハブ クラスターの Azure リソース グループ: ハブ クラスター AKS リソースは、名前付け形式が
FL_{fleet_manager_resource_group}_{fleet_manager_name}_{azure_region}であるマネージド リソース グループに作成されます。 -
ハブ クラスター リソースの Azure リソース グループ: 任意の AKS クラスターと同様に、ハブ クラスターには、エージェント ノード プールの仮想マシン スケール セットや、名前付け形式が
MC_FL_{fleet_manager_resource_group}_{fleet_manager_name}_{azure_region}であるマネージド リソース グループに作成された仮想ネットワークなどの Azure リソースがあります。 -
ハブ クラスター ノード: ハブ クラスターには、Azure Linux を実行する 1 つのノードを含むノード プールがあります。 ノードはポッドを実行しないため、ハブ クラスターのパフォーマンスには影響しません。 Azure CLI からハブ クラスターを作成する場合は、
--vm-sizeパラメーターを使用してノード仮想マシン (VM) SKU の種類を選択できます。 - ネットワーク構成: パブリック ハブ クラスターにはパブリック API サーバーがあり、パブリック IP アドレスが関連付けられています。 プライベート アクセス用に構成されている場合、API サーバーには Azure 仮想ネットワーク経由でのみアクセスできます。
ハブ クラスターの制限
ハブ クラスターには、リソースの伝達と管理に必要な機能を保証する次の制限があります。
- コマンド呼び出しが無効: ハブ クラスターでは、Azure CLI を介したコマンド呼び出し (az aks コマンド呼び出し) の使用は無効になっています。
-
ローカル認証が無効: 管理者
kubeconfig経由のアクセスは無効になっており、認証が Microsoft Entra ID によって排他的に処理され、アクセス制御を一元化することでセキュリティが強化されます。 az fleet get-credentials を使用して、ハブ クラスターのkubeconfigを取得します。 -
拒否の割り当て: ハブ クラスターと関連リソースの Azure 構成に対する変更は、Azure 拒否の割り当てによってブロックされます。 次の拒否の割り当てが使用されます:
-
FLRG-DenyAssignments-{guid}: ハブ クラスター リソース グループに適用され、ユーザーがハブ クラスターを変更できないようにします。 -
kubernetes.azure.com/{guid}(省略可能): この拒否の割り当てにより、「AKS ノード リソース グループのロックダウン」で説明されているとおり、ユーザーがハブ クラスターの AKS リソース (Virtual Machine Scale Sets、ネットワーク) を変更できなくなります。
-
- 適用されたリソースがインスタンス化されない: ハブ クラスターでは、適用された Kubernetes リソースがハブ クラスター ノードにスケジュールされません。 一部の Kubernetes リソースは、ハブ クラスターへの副作用を回避するためにエンベロープ オブジェクトを使用して適用する必要があります。 エンベロープ オブジェクトの詳細については、エンベロープ オブジェクトのドキュメントを参照してください。
Protected-resource へのアクセス制限
Important
2027 年 1 月 31 日以降、Fleet Manager ハブ クラスターは、保護されたサービスマネージド リソースと特権インターフェイスへのアクセスを拒否します。 これらの制限は、Azureロールベースのアクセス制御 (Azure RBAC) に加えて適用されます。 以前は要求を許可していた Azure ロールの割り当てでも、これらの制限はオーバーライドされません。
次の Kubernetes API 要求は拒否されます。
- すべての本人なりすましのリクエスト。
-
listまたはwatchで始まる名前を持つ名前空間におけるfleet-、kube-、およびget以外のすべての操作。 -
fleet-またはkube-で始まる名前を持つ名前空間内のポッド、シークレット、サービス アカウント、ロール、およびロール バインディングに対するget、list、およびwatch要求。 - ポッド、シークレット、サービス アカウント、ロール、ロール バインディングに対する名前空間をまたぐ
listリクエストとwatchリクエスト。 - クラスター ロールとクラスター ロール バインディングのリクエストを書き込みます。
-
nodes/proxyサブリソースへのリクエストの読み取りと書き込み。 - アドミッション ポリシーの検証、アドミッション ポリシー バインディングの検証、
fleet-builtin-で始まる名前を持つ検証用 Webhook 構成に関する要求を記述します。 - アドミッション ポリシーの検証、アドミッション ポリシー バインドの検証、Webhook 構成の検証のためのコレクション削除要求。
カスタマー マネージド名前空間でサポートされているその他の操作は引き続き使用できます。
影響を受ける Fleet Manager のリソースと自動化を特定する
Fleet Manager リソースは、ハブ クラスターが有効になっている場合に影響を受ける可能性があります。 Azure Resource Graph エクスプローラーを使用して、次のリソースを見つけます。
Resources
| where type =~ "microsoft.containerservice/fleets"
| where isnotnull(properties.hubProfile)
| project id, name, subscriptionId, resourceGroup, location
ハブ クラスターがあると、必ずしもアクションを実行する必要があるわけではありません。 影響を受けるのは、ユーザー、スクリプト、コントローラー、または CI/CD パイプラインが、制限されたリクエストの 1 つをハブ クラスターに送信する場合のみです。
次のためにハブ クラスターにアクセスする自動化を確認します。
- なりすましオプションまたはヘッダー (
--asや--as-groupを含む)。 -
nodes/proxyへの要求。 -
fleet-またはkube-で始まる名前を持つ名前空間へのアクセス。 - 保護対象リソースに対するクラスター全体または
--all-namespacesリスト要求、および監視要求。 - クラスター ロールまたはクラスター ロール バインディングに対する変更。
-
fleet-builtin-で始まる名前を持つ検証リソースに対する変更。 - 検証リソースのコレクションの削除。
影響を受けるオートメーションを更新する
2027 年 1 月 31 日より前:
- お客様所有のリソースおよび自動化を
fleet-またはkube-で始まる名前の名前空間から移動します。 - ポッド、シークレット、サービス アカウント、ロール、ロール バインディングに対するリスト要求と監視要求の対象を、カスタマー管理名前空間に限定します。
- リソースを配置する場合は、クラスター ロールとクラスター ロール バインディングを
ClusterResourceEnvelopeでラップします。 詳細については、「エンベロープ オブジェクトを使用してリソースを安全に配置する」を参照してください。 - ハブ クラスターへのプログラムによるアクセスには、専用のMicrosoft Entra ID を使用し、必要な最小限の特権の Fleet Manager RBAC ロールを割り当て、ID 偽装を使用しないでください。
-
nodes/proxyサブリソースの使用をやめてください。 - 名前が
fleet-builtin-で始まる検証リソースを変更しないでください。 - 検証リソースのコレクションの削除を、顧客が管理するリソースを対象としたリクエストに置き換えます。
- 施行日前に、更新された自動化をテストします。
影響を受ける自動化を 2027 年 1 月 31 日より前に更新しない場合、制限対象のリクエストには、認可拒否の応答が返されます。 これらの要求に依存するスクリプト、コントローラー、デプロイ、または運用ワークフローが失敗したり、繰り返し再試行されたりする可能性があります。 制限付き操作を使用しない場合、アクションは必要ありません。
顧客からの要件
Fleet Manager が最新のパッチを使用して最新の状態でハブクラスターを作成し、維持するためには、次のことを確認してください。
Azure Policy では、クラスターの作成はブロックされません。 ハブ クラスターは、マネージド AKS クラスターです。 AKS クラスターを作成できない場合は、Fleet Manager ハブ クラスターを作成できません。
サブスクリプションには十分なクォータがあります。 クラスターのアップグレード プロセス中に、ハブ クラスターのノードの追加の VM インスタンスが 1 つ必要です。 クォータの増加の詳細については、クォータに関するドキュメントを参照してください。
ハブ クラスターはインターネットにアクセスできます。 更新プログラムをインストールするには、送信接続が必要になります。 ユーザー定義ルーティング (UDR) またはファイアウォール規則を使用するネットワーク上のプライベート ハブによって、送信接続がブロックされる場合があります。 送信接続の詳細については、AKS 送信ネットワークに関するドキュメントを参照してください。
API サーバーはハブ ノードに到達できます。 API サーバー VNet 統合を使用するプライベート ハブ クラスター上の NSG ルールによってサブネット間のトラフィックが制限される場合は、API サーバー サブネットから TCP ポート 10250 のクラスター サブネットへの受信トラフィックを許可します。 この規則がないと、ログの取得や
execを実行することなど、kubelet API を使用する操作は失敗します。 必要なすべての規則については、 API サーバー VNet 統合の NSG セキュリティ規則に関するページを参照してください。Fleet Manager ハブ クラスターの更新を管理する必要はありません。 Microsoft は、AKS から利用可能になると、ハブ クラスターを Kubernetes またはノード イメージの最新バージョンに自動的に更新します。 更新プログラムのリリースは、AKS リリース トラッカーで追跡できます。