Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver hur du använder Azure Kubernetes Fleet Manager ResourcePlacement för att distribuera namnområdesomfångsresurser mellan kluster i en flotta.
Viktigt!
Förhandsversionsfunktionerna i Azure Kubernetes Fleet Manager är tillgängliga via självbetjäning och opt-in. Förhandsversioner tillhandahålls "i befintligt skick" och "i mån av tillgång," och de är undantagna från servicenivåavtal och begränsad garanti. Förhandsversioner av Azure Kubernetes Fleet Manager omfattas delvis av kundsupport på bästa sätt. Därför är dessa funktioner inte avsedda för produktionsanvändning.
Förutsättningar
- Om du inte har något Azure-konto skapar du ett kostnadsfritt konto innan du börjar.
- Läs den konceptuella översikten över resursplacering med namnområdesomfång för att förstå begreppen och terminologin som används i den här artikeln.
- Du behöver en Fleet Manager med ett navkluster och medlemskluster. Om du inte har en kan du läsa Skapa en Azure Kubernetes Fleet Manager-resurs och ansluta till medlemskluster med hjälp av Azure CLI.
- Du behöver åtkomst till Kubernetes API för hubbklustret. Om du inte har åtkomst läser du Åtkomst till Kubernetes API för ett Azure Kubernetes Fleet Manager-hubbkluster.
Upprätta namnområdet mellan medlemskluster
Innan du kan använda ResourcePlacement för att distribuera namnområdesomfångsresurser måste målnamnområdet finnas i medlemskluster. Det här exemplet visar hur du skapar ett namnområde i hubbklustret och sprider det till medlemskluster med hjälp av ClusterResourcePlacement.
Anmärkning
I följande exempel används API-versionen placement.kubernetes-fleet.io/v1beta1 . Fältet selectionScope: NamespaceOnly är en förhandsversionsfunktion som är tillgänglig i v1beta1 och är inte tillgänglig i det stabila v1-API:et.
Skapa ett namnområde i hubbklustret:
kubectl create namespace my-appSkapa ett
ClusterResourcePlacementobjekt för att sprida namnområdet till alla medlemskluster. Spara följande YAML i en fil med namnetnamespace-crp.yaml:apiVersion: placement.kubernetes-fleet.io/v1beta1 kind: ClusterResourcePlacement metadata: name: my-app-namespace spec: resourceSelectors: - group: "" kind: Namespace name: my-app version: v1 selectionScope: NamespaceOnly policy: placementType: PickAllApplicera
ClusterResourcePlacementpå det hubbklustret.kubectl apply -f namespace-crp.yamlKontrollera att namnområdet framgångsrikt har spridits:
kubectl get clusterresourceplacement my-app-namespaceDin utdata bör likna det följande exemplet:
NAME GEN SCHEDULED SCHEDULED-GEN AVAILABLE AVAILABLE-GEN AGE my-app-namespace 1 True 1 True 1 15s
Använd ResourcePlacement för att placera namnområdesomfångsbegränsade resurser
Objektet ResourcePlacement skapas i ett namnområde i hubbklustret och används för att sprida specifika namnområdesomfångsresurser till medlemskluster. Det här exemplet visar hur du sprider ConfigMaps till specifika medlemskluster med hjälp av ResourcePlacement objektet med en PickFixed placeringsprincip.
Mer information finns i namnområdesomfångsbaserad resursplacering med Hjälp av Azure Kubernetes Fleet Manager ResourcePlacement.
Skapa ConfigMaps i namnområdet i hubbklustret. Dessa ConfigMaps sprids till de valda medlemskluster:
kubectl create configmap app-config \ --from-literal=environment=production \ --from-literal=log-level=info \ -n my-app kubectl create configmap feature-flags \ --from-literal=new-ui=enabled \ --from-literal=api-v2=disabled \ -n my-appSkapa ett
ResourcePlacementobjekt för att sprida ConfigMaps. Spara följande YAML i en fil med namnetapp-configs-rp.yaml:apiVersion: placement.kubernetes-fleet.io/v1beta1 kind: ResourcePlacement metadata: name: app-configs namespace: my-app spec: resourceSelectors: - group: "" kind: ConfigMap version: v1 name: app-config - group: "" kind: ConfigMap version: v1 name: feature-flags policy: placementType: PickFixed clusterNames: - membercluster1 - membercluster2Anmärkning
Ersätt
membercluster1ochmembercluster2med de faktiska namnen på dina medlemskluster. Du kan lista tillgängliga medlemskluster med hjälp avkubectl get memberclusters.Applicera
ResourcePlacementpå klusterhubben:kubectl apply -f app-configs-rp.yamlKontrollera förloppet för resursspridningen:
kubectl get resourceplacement app-configs -n my-appDin utdata bör likna det följande exemplet:
NAME GEN SCHEDULED SCHEDULED-GEN AVAILABLE AVAILABLE-GEN AGE app-configs 1 True 1 True 1 20sVisa information om placeringsobjektet:
kubectl describe resourceplacement app-configs -n my-appDin utdata bör likna det följande exemplet:
Name: app-configs Namespace: my-app Labels: <none> Annotations: <none> API Version: placement.kubernetes-fleet.io/v1beta1 Kind: ResourcePlacement Metadata: Creation Timestamp: 2025-11-13T22:08:12Z Finalizers: kubernetes-fleet.io/crp-cleanup kubernetes-fleet.io/scheduler-cleanup Generation: 1 Resource Version: 12345 UID: cec941f1-e48a-4045-b5dd-188bfc1a830f Spec: Policy: Cluster Names: membercluster1 membercluster2 Placement Type: PickFixed Resource Selectors: Group: Kind: ConfigMap Name: app-config Version: v1 Group: Kind: ConfigMap Name: feature-flags Version: v1 Revision History Limit: 10 Strategy: Type: RollingUpdate Status: Conditions: Last Transition Time: 2025-11-13T22:08:12Z 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: 2025-11-13T22:08:12Z Message: All 2 cluster(s) start rolling out the latest resource Observed Generation: 1 Reason: RolloutStarted Status: True Type: ResourcePlacementRolloutStarted Last Transition Time: 2025-11-13T22:08:13Z Message: No override rules are configured for the selected resources Observed Generation: 1 Reason: NoOverrideSpecified Status: True Type: ResourcePlacementOverridden Last Transition Time: 2025-11-13T22:08:13Z Message: Works(s) are succcesfully created or updated in 2 target cluster(s)' namespaces Observed Generation: 1 Reason: WorkSynchronized Status: True Type: ResourcePlacementWorkSynchronized Last Transition Time: 2025-11-13T22:08:13Z Message: The selected resources are successfully applied to 2 cluster(s) Observed Generation: 1 Reason: ApplySucceeded Status: True Type: ResourcePlacementApplied Last Transition Time: 2025-11-13T22:08:13Z 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: membercluster1 Conditions: Last Transition Time: 2025-11-13T22:08:12Z Message: Successfully scheduled resources for placement in "membercluster1": picked by scheduling policy Observed Generation: 1 Reason: Scheduled Status: True Type: Scheduled Last Transition Time: 2025-11-13T22:08:12Z 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: 2025-11-13T22:08:13Z Message: No override rules are configured for the selected resources Observed Generation: 1 Reason: NoOverrideSpecified Status: True Type: Overridden Last Transition Time: 2025-11-13T22:08:13Z Message: All of the works are synchronized to the latest Observed Generation: 1 Reason: AllWorkSynced Status: True Type: WorkSynchronized Last Transition Time: 2025-11-13T22:08:13Z Message: All corresponding work objects are applied Observed Generation: 1 Reason: AllWorkHaveBeenApplied Status: True Type: Applied Last Transition Time: 2025-11-13T22:08:13Z Message: All corresponding work objects are available Observed Generation: 1 Reason: AllWorkAreAvailable Status: True Type: Available Observed Resource Index: 0 Cluster Name: membercluster2 Conditions: Last Transition Time: 2025-11-13T22:08:12Z Message: Successfully scheduled resources for placement in "membercluster2": picked by scheduling policy Observed Generation: 1 Reason: Scheduled Status: True Type: Scheduled Last Transition Time: 2025-11-13T22:08:12Z 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: 2025-11-13T22:08:13Z Message: No override rules are configured for the selected resources Observed Generation: 1 Reason: NoOverrideSpecified Status: True Type: Overridden Last Transition Time: 2025-11-13T22:08:13Z Message: All of the works are synchronized to the latest Observed Generation: 1 Reason: AllWorkSynced Status: True Type: WorkSynchronized Last Transition Time: 2025-11-13T22:08:13Z Message: All corresponding work objects are applied Observed Generation: 1 Reason: AllWorkHaveBeenApplied Status: True Type: Applied Last Transition Time: 2025-11-13T22:08:13Z 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: my-app Version: v1 Kind: ConfigMap Name: feature-flags Namespace: my-app Version: v1 Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal PlacementRolloutStarted 37s placement-controller Started rolling out the latest resources Normal PlacementOverriddenSucceeded 36s placement-controller Placement has been successfully overridden Normal PlacementWorkSynchronized 36s placement-controller Work(s) have been created or updated successfully for the selected cluster(s) Normal PlacementApplied 36s placement-controller Resources have been applied to the selected cluster(s) Normal PlacementAvailable 36s placement-controller Resources are available on the selected cluster(s) Normal PlacementRolloutCompleted 36s placement-controller Placement has finished the rollout process and reached the desired status
Verifiera resurser i medlemskluster
Du kan kontrollera att ConfigMaps har spridits till medlemskluster.
Hämta autentiseringsuppgifterna för ett av dina medlemskluster:
az aks get-credentials --resource-group <resource-group> --name membercluster1Kontrollera att namnområdet finns:
kubectl get namespace my-appKontrollera att ConfigMaps finns i namnområdet:
kubectl get configmap -n my-appDina utdata bör visa båda ConfigMaps:
NAME DATA AGE app-config 2 2m feature-flags 2 2mVisa innehållet i en ConfigMap:
kubectl describe configmap app-config -n my-app
Rensa resurser
Om du inte längre vill använda objekten ResourcePlacement kan du ta bort dem med kommandot kubectl delete :
kubectl delete resourceplacement app-configs -n my-app
Ta även bort namnområdet ClusterResourcePlacement:
kubectl delete clusterresourceplacement my-app-namespace
Så här tar du bort namnområdet och alla resurser i det från hubbklustret:
kubectl delete namespace my-app
Relaterat innehåll
Mer information om resursplacering med namnområdesomfång finns i följande resurser:
- Använda ResourcePlacement för att distribuera namnområdesomfångsbegränsade resurser
- Använda ClusterResourcePlacement för att distribuera klusteromfattningsresurser
- Förstå utdata för resursplaceringsstatus
- Använda åsidosättningar för att anpassa namnområdesomfångsresurser
- Definiera en distributionsstrategi för resursplacering
- Vanliga frågor och svar om placering av klusterresurser
Azure Kubernetes Service