Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: ✔️ Fleet Manager con cluster di hub
Azure Kubernetes Fleet Manager ResourcePlacement consente di distribuire e sincronizzare singole risorse con ambito spazio dei nomi, ad esempio ConfigMaps, Distribuzioni e Servizi, in cluster specifici della flotta senza propagare un intero spazio dei nomi. Questo approccio offre un controllo granulare sugli elementi distribuiti, semplificando la gestione della configurazione multi-cluster e riducendo il sovraccarico manuale. Questo articolo spiega come usare ResourcePlacement per distribuire le risorse con ambito namespace ai cluster membri.
Per distribuire risorse con ambito di cluster o un namespace e tutte le risorse figlio contenute al suo interno, vedere Usare il posizionamento delle risorse di Azure Kubernetes Fleet Manager per distribuire risorse con ambito di cluster in più cluster.
È possibile completare i passaggi descritti in questo articolo usando il portale di Azure o il interfaccia della riga di comando di Azure.
Annotazioni
È possibile usare la funzionalità di posizionamento delle risorse di Fleet Manager con AKS e i cluster Kubernetes abilitati per Azure Arc.
Prima di iniziare
- Se non si ha un account Azure, creare un account gratuito prima di iniziare.
- Leggi la panoramica concettuale del posizionamento delle risorse con ambito del namespace per comprendere i concetti e la terminologia utilizzati in questo articolo.
- È necessario Gestione flotta con un cluster hub e cluster membri. Se non ne hai uno, vedi Crea una risorsa Azure Kubernetes Fleet Manager e aggiungi cluster membri utilizzando la CLI di Azure.
- È necessario accedere all'API Kubernetes del cluster hub. Se non si ha accesso, vedere Accedere all'API Kubernetes per un cluster hub di Gestione flotta Kubernetes.
Stabilire lo spazio dei nomi tra cluster membri
Prima di poter usare ResourcePlacement per distribuire le risorse con ambito spazio dei nomi, lo spazio dei nomi di destinazione deve esistere nei cluster membri.
Verrà ora illustrato come creare uno spazio dei nomi nel cluster hub di Fleet Manager e distribuirlo ai cluster membri usando un oggetto ClusterResourcePlacement. Si assicura che venga distribuito solo lo spazio dei nomi aggiungendo selectionScope: NamespaceOnly al resourceSelector.
Impostare le variabili di ambiente seguenti per l'ID sottoscrizione, il gruppo di risorse e la risorsa Flotta Kubernetes:
export SUBSCRIPTION_ID=<subscription-id> export GROUP=<resource-group-name> export FLEET=<fleet-name>Impostare la sottoscrizione Azure predefinita usando il comando
az account set:az account set \ --subscription ${SUBSCRIPTION_ID}Ottenere il file kubeconfig del cluster hub di Flotta Kubernetes usando il comando
az fleet get-credentials:az fleet get-credentials \ --resource-group ${GROUP} \ --name ${FLEET}Il risultato dovrebbe essere simile al seguente esempio.
Merged "hub" as current context in /home/fleet/.kube/configAnnotazioni
Se si riceve un errore di tipo
InvalidHubOperationcon un messaggio che indica che la flotta è priva di hub, aggiungi un cluster di hub. Per altre informazioni, vedere Aggiornare il tipo di cluster hub.Creare un namespace nel cluster hub:
kubectl create namespace test-appSalvare il codice YAML seguente come
crp-distribute-namespace-only.yaml.apiVersion: placement.kubernetes-fleet.io/v1 kind: ClusterResourcePlacement metadata: name: distribute-test-app-namespace spec: resourceSelectors: - group: "" kind: Namespace name: test-app version: v1 selectionScope: NamespaceOnly policy: placementType: PickAllApplica il manifest di posizionamento al cluster hub di Fleet Manager.
kubectl apply -f crp-distribute-namespace-only.yamlAnnotazioni
La distribuzione del namespace inizia immediatamente quando si applica il posizionamento delle risorse tramite una strategia implicita
RollingUpdate. Per informazioni su come avere controlli aggiuntivi sull'implementazione, vedere Definizione di una strategia di implementazione per il posizionamento delle risorse.Verifica che lo spazio dei nomi sia stato distribuito correttamente:
kubectl get clusterresourceplacement distribute-test-app-namespaceL'output dovrebbe essere simile all'esempio seguente:
NAME GEN SCHEDULED SCHEDULED-GEN AVAILABLE AVAILABLE-GEN AGE distribute-test-app-namespace 1 True 1 True 1 2m45s
Nel portale di Azure passare a Fleet Manager.
Nel menu del servizio, in Risorse della flotta, selezionare Namespace>+ Crea.
Annotazioni
Se le risorse della flotta non sono visualizzate, Fleet Manager non ha un cluster hub. Per altre informazioni su come aggiungerne una, vedere Aggiornare il tipo di cluster hub.
Nel menu selezionare Spazio dei nomi, immettere un nome e quindi selezionare Crea.
Dopo alcuni istanti, la pagina viene aggiornata e lo spazio dei nomi viene visualizzato nell'elenco degli spazi dei nomi nel cluster hub di Fleet Manager. È ora pronto per ospitare tutte le risorse da distribuire tra cluster membri.
Nel menu Servizio, in Risorse flotta, selezionare Posizionamenti risorse>+ Crea.
Nella scheda Informazioni di base configurare le opzioni seguenti:
In Dettagli del posizionamento, immettere un nome per il posizionamento.
In Dettagli risorsa immettere il tipo di versione del gruppo (GVK) e il nome della risorsa da distribuire. In questo esempio usare i valori seguenti.
group: "" kind: Namespace version: v1 name: test-app selectionScope: NamespaceOnlyIn Selezione del cluster membro, scegli Tutti i cluster.
Per Rollout, lascia selezionata la strategia Aggiornamento progressivo.
Selezionare Avanti per esaminare il manifesto risultante
ClusterResourcePlacement. È possibile modificare il manifesto, se necessario, convalidarlo usando l'opzione Convalida (esecuzione secca) oppure selezionare Rivedi e crea per procedere alla conferma finale.Selezionare Crea per avviare immediatamente la distribuzione dello spazio dei nomi.
Annotazioni
La distribuzione della risorsa namespace inizia non appena si applica il posizionamento delle risorse utilizzando la strategia
RollingUpdateselezionata. Per altre informazioni su come controllare l'implementazione, vedere Definizione di una strategia di implementazione per il posizionamento delle risorse.La pagina viene aggiornata e l'elenco Posizionamento risorse visualizza il posizionamento appena creato. Mostra il numero di cluster selezionati e se lo scheduler della flotta può soddisfare i criteri di posizionamento.
Visualizzare lo stato di implementazione del posizionamento selezionando il nome del posizionamento nell'elenco. Selezionare singoli cluster per visualizzare l'implementazione della risorsa in tale cluster.
Nei cluster Kubernetes selezionati si trova lo spazio dei nomi distribuito.
Distribuire le risorse con ambito del namespace ai cluster membri
Usare lo scenario semplice di distribuzione di due ConfigMap risorse tra i cluster selezionati nella flotta. È necessario creare l'oggetto ResourcePlacement nello spazio dei nomi come risorse da distribuire.
Crea due risorse
ConfigMapnel namespace del cluster hub.kubectl create configmap app-config \ --from-literal=environment=production \ --from-literal=log-level=info \ -n test-app kubectl create configmap feature-flags \ --from-literal=new-ui=enabled \ --from-literal=api-v2=disabled \ -n test-appCreare un
ResourcePlacementoggetto per propagare ConfigMaps. Salvare il codice YAML seguente in un file denominatoapp-configs-rp.yaml:apiVersion: placement.kubernetes-fleet.io/v1beta1 kind: ResourcePlacement metadata: name: distribute-app-configs namespace: test-app spec: resourceSelectors: - group: "" kind: ConfigMap version: v1 name: app-config - group: "" kind: ConfigMap version: v1 name: feature-flags policy: placementType: PickFixed clusterNames: - membercluster1 - membercluster2Annotazioni
Sostituire
membercluster1emembercluster2con i nomi effettivi dei cluster membri. Usarekubectl get memberclustersper elencare i cluster membri disponibili.Applicare l'oggetto
ResourcePlacemental cluster hub:kubectl apply -f app-configs-rp.yamlControllare lo stato di avanzamento della propagazione delle risorse:
kubectl get resourceplacement distribute-app-configs -n test-appIl risultato dovrebbe essere simile al seguente esempio.
NAME GEN SCHEDULED SCHEDULED-GEN AVAILABLE AVAILABLE-GEN AGE distribute-app-configs 1 True 1 True 1 3m14sVisualizzare i dettagli del posizionamento.
kubectl describe resourceplacement distribute-app-configs -n test-appIl risultato dovrebbe essere simile al seguente esempio.
Name: distribute-app-configs Namespace: test-app Labels: <none> Annotations: <none> API Version: placement.kubernetes-fleet.io/v1 Kind: ResourcePlacement Metadata: Creation Timestamp: 2026-07-24T05:18:56Z Finalizers: kubernetes-fleet.io/crp-cleanup kubernetes-fleet.io/scheduler-cleanup Generation: 1 Resource Version: 1306099 UID: 3a7b7f54-9ef0-4a2d-b8a6-62258ed63f78 Spec: Policy: Cluster Names: aks-place-member-01-fm aks-place-member-02-fm Placement Type: PickFixed Resource Selectors: Group: Kind: ConfigMap Name: app-config Selection Scope: NamespaceWithResources Version: v1 Group: Kind: ConfigMap Name: feature-flags Selection Scope: NamespaceWithResources Version: v1 Revision History Limit: 10 Status Reporting Scope: ClusterScopeOnly Strategy: Type: RollingUpdate Status: Conditions: Last Transition Time: 2026-07-24T05:18:56Z Message: found all cluster needed as specified by the scheduling policy, found 2 cluster(s) Observed Generation: 1 Reason: SchedulingPolicyFulfilled Status: True Type: ResourcePlacementScheduled Last Transition Time: 2026-07-24T05:18:56Z Message: All 2 cluster(s) start rolling out the latest resource Observed Generation: 1 Reason: RolloutStarted Status: True Type: ResourcePlacementRolloutStarted Last Transition Time: 2026-07-24T05:18:56Z Message: No override rules are configured for the selected resources Observed Generation: 1 Reason: NoOverrideSpecified Status: True Type: ResourcePlacementOverridden Last Transition Time: 2026-07-24T05:18:56Z Message: Works(s) are successfully created or updated in 2 target cluster(s)' namespaces Observed Generation: 1 Reason: WorkSynchronized Status: True Type: ResourcePlacementWorkSynchronized Last Transition Time: 2026-07-24T05:18:56Z Message: The selected resources are successfully applied to 2 cluster(s) Observed Generation: 1 Reason: ApplySucceeded Status: True Type: ResourcePlacementApplied Last Transition Time: 2026-07-24T05:18:56Z Message: The selected resources in 2 cluster(s) are available now Observed Generation: 1 Reason: ResourceAvailable Status: True Type: ResourcePlacementAvailable Observed Resource Index: 0 Placement Statuses: Cluster Name: aks-place-member-01-fm Conditions: Last Transition Time: 2026-07-24T05:18:56Z Message: Successfully scheduled resources for placement in "aks-place-member-01-fm": picked by scheduling policy Observed Generation: 1 Reason: Scheduled Status: True Type: Scheduled Last Transition Time: 2026-07-24T05:18:56Z Message: Detected the new changes on the resources and started the rollout process Observed Generation: 1 Reason: RolloutStarted Status: True Type: RolloutStarted Last Transition Time: 2026-07-24T05:18:56Z Message: No override rules are configured for the selected resources Observed Generation: 1 Reason: NoOverrideSpecified Status: True Type: Overridden Last Transition Time: 2026-07-24T05:18:56Z Message: All of the works are synchronized to the latest Observed Generation: 1 Reason: AllWorkSynced Status: True Type: WorkSynchronized Last Transition Time: 2026-07-24T05:18:56Z Message: All corresponding work objects are applied Observed Generation: 1 Reason: AllWorkHaveBeenApplied Status: True Type: Applied Last Transition Time: 2026-07-24T05:18:56Z Message: All corresponding work objects are available Observed Generation: 1 Reason: AllWorkAreAvailable Status: True Type: Available Observed Resource Index: 0 Cluster Name: aks-place-member-02-fm Conditions: Last Transition Time: 2026-07-24T05:18:56Z Message: Successfully scheduled resources for placement in "aks-place-member-02-fm": picked by scheduling policy Observed Generation: 1 Reason: Scheduled Status: True Type: Scheduled Last Transition Time: 2026-07-24T05:18:56Z Message: Detected the new changes on the resources and started the rollout process Observed Generation: 1 Reason: RolloutStarted Status: True Type: RolloutStarted Last Transition Time: 2026-07-24T05:18:56Z Message: No override rules are configured for the selected resources Observed Generation: 1 Reason: NoOverrideSpecified Status: True Type: Overridden Last Transition Time: 2026-07-24T05:18:56Z Message: All of the works are synchronized to the latest Observed Generation: 1 Reason: AllWorkSynced Status: True Type: WorkSynchronized Last Transition Time: 2026-07-24T05:18:56Z Message: All corresponding work objects are applied Observed Generation: 1 Reason: AllWorkHaveBeenApplied Status: True Type: Applied Last Transition Time: 2026-07-24T05:18:56Z Message: All corresponding work objects are available Observed Generation: 1 Reason: AllWorkAreAvailable Status: True Type: Available Observed Resource Index: 0 Selected Resources: Kind: ConfigMap Name: app-config Namespace: test-app Version: v1 Kind: ConfigMap Name: feature-flags Namespace: test-app Version: v1 Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal PlacementRolloutStarted 4m3s placement-controller Started rolling out the latest resources Normal PlacementOverriddenSucceeded 4m3s placement-controller Placement has been successfully overridden Normal PlacementWorkSynchronized 4m3s placement-controller Work(s) have been created or updated successfully for the selected cluster(s) Normal PlacementApplied 4m3s placement-controller Resources have been applied to the selected cluster(s) Normal PlacementAvailable 4m3s placement-controller Resources are available on the selected cluster(s) Normal PlacementRolloutCompleted 4m3s placement-controller Placement has finished the rollout process and reached the desired status
Nel portale di Azure passare a Fleet Manager.
Nel menu Servizi, sotto Risorse della flotta, selezionare Namespace.
Annotazioni
Se le risorse della flotta non sono visualizzate, Fleet Manager non ha un cluster hub. Per altre informazioni su come aggiungerne una, vedere Aggiornare il tipo di cluster hub.
Nella parte superiore dell'elenco degli spazi dei nomi selezionare + Crea>applica un YAML e usare gli esempi seguenti.
apiVersion: v1 kind: ConfigMap metadata: name: app-config namespace: test-app data: environment: production log-level: infoapiVersion: v1 kind: ConfigMap metadata: name: feature-flags namespace: test-app data: new-ui: enabled api-v2: disabledCopiare e incollare gli esempi e applicarli uno alla volta, come illustrato nell'immagine seguente.
Le due risorse ConfigMap sono ora pronte per la distribuzione ai cluster membri usando un oggetto
ResourcePlacement.Nel menu del servizio, in Risorse flotta, seleziona Posizionamenti delle risorse>+ Crea.
Nella scheda Informazioni di base configurare le opzioni seguenti:
In i dettagli di posizionamento, immetti un nome per il posizionamento.
Nei dettagli della risorsa:
Impostare Ambito come spazio dei nomi con ambito.
Per Spazio dei nomi, selezionare il namespace
test-app.Immettere il tipo di versione del gruppo (GVK) e il nome della risorsa da distribuire. In questo esempio usare i valori seguenti.
group: "" kind: ConfigMap version: v1 name: app-config
In Selezione cluster membro, per Tipo di posizionamento, seleziona Seleziona i cluster specifici.
Seleziona Seleziona i cluster membri, scegli i cluster membri che ricevono le risorse, quindi seleziona Seleziona.
- Per Rollout, lascia selezionata la strategia Aggiornamento progressivo.
Selezionare Avanti per esaminare il manifesto risultante
ResourcePlacement.Aggiungere il secondo ConfigMap da distribuire alla
resourceSelectorssezione nella finestra di dialogo YAML.group: "" kind: ConfigMap version: v1 name: feature-flagsPrima di procedere, convalidare il file YAML modificato usando l'opzione Convalida (esecuzione secca). Selezionare Rivedi e crea per passare alla conferma finale.
Selezionare Crea per avviare immediatamente la distribuzione dello spazio dei nomi.
Annotazioni
La distribuzione della risorsa inizia immediatamente non appena si applica il posizionamento della risorsa tramite la strategia selezionata
RollingUpdate. Per informazioni su come avere controlli aggiuntivi sull'implementazione, vedere Definizione di una strategia di implementazione per il posizionamento delle risorse.La pagina viene aggiornata e l'elenco Posizionamento risorse visualizza il posizionamento appena creato. Indica il numero di cluster selezionati e se il pianificatore della flotta può rispettare i criteri di posizionamento.
Visualizzare lo stato di implementazione del posizionamento selezionando il nome del posizionamento nell'elenco. Selezionare singoli cluster per visualizzare l'implementazione della risorsa in tale cluster.
È possibile verificare che le risorse distribuite siano presenti nei cluster membri connettendosi direttamente ai cluster membri e controllando lo test-app spazio dei nomi per visualizzare le due ConfigMap risorse.
Eliminare il posizionamento per rimuovere le risorse
Quando si elimina il posizionamento delle risorse sul cluster hub di Fleet Manager, si rimuovono le risorse distribuite dai cluster membri selezionati.
Per rimuovere le risorse ConfigMap, eliminare
ResourcePlacementsul cluster hub di Fleet Manager.kubectl delete resourceplacement distribute-app-configsPer rimuovere il namespace dai cluster membri, eliminare
ClusterResourcePlacement.kubectl delete clusterresourceplacement distribute-test-app-namespace
Nel menu del servizio, in Risorse flotta, selezionare Posizionamento risorse.
Nell'elenco di posizionamento delle risorse selezionare il posizionamento e selezionare Elimina.
In Elimina verificare di aver scelto il posizionamento corretto. Quando si è pronti, selezionare Conferma eliminazione>Elimina.
La pagina viene aggiornata e il posizionamento non viene più visualizzato nell'elenco. Le risorse vengono rimosse dai cluster membri.
Ripeti questo processo per rimuovere il namespace che hai aggiunto nel primo passaggio.
Contenuti correlati
Per altre informazioni sul posizionamento delle risorse, vedere le risorse seguenti:
- Distribuire risorse con ambito di cluster tra più cluster.
- Informazioni sull'output dello stato di posizionamento delle risorse.
- Posizionamento intelligente delle risorse Kubernetes tra cluster in base alle proprietà dei cluster membri.
- Controllo della rimozione e delle interruzioni per il posizionamento delle risorse del cluster.
- Definizione di una strategia di implementazione per un posizionamento delle risorse cluster.
- Domande frequenti sul posizionamento delle risorse del cluster.
- Documentazione di KubeFleet ResourcePlacement open source.