Udostępnij za pośrednictwem


Propagacja zasobów z klastra koncentratora Usługi Azure Kubernetes Fleet Manager (Fleet) do klastrów członkowskich

Ten artykuł zawiera omówienie propagacji zasobów z klastra koncentratora Usługi Azure Kubernetes Fleet Manager (Fleet) do klastrów członkowskich.

Wymagania wstępne

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

Propagacja zasobów do klastrów członkowskich przy użyciu interfejsu ClusterResourcePlacement API

Obiekt interfejsu ClusterResourcePlacement API służy do propagowania zasobów z klastra koncentratora do klastrów członkowskich. Obiekt ClusterResourcePlacement interfejsu API określa zasoby do propagowania i zasad umieszczania do użycia podczas wybierania klastrów członkowskich. Obiekt ClusterResourcePlacement interfejsu API jest tworzony w klastrze centrum i służy do propagowania zasobów do klastrów członkowskich. W tym przykładzie pokazano, jak propagować przestrzeń nazw do klastrów członkowskich przy użyciu obiektu interfejsu ClusterResourcePlacement API z zasadami umieszczania PickAll .

Aby uzyskać więcej informacji, zobacz Propagacja zasobów Kubernetes z klastra koncentratora do klastrów członkowskich i dokumentacja floty typu open source.

  1. Utwórz przestrzeń nazw do umieszczania w klastrach członkowskich przy użyciu kubectl create namespace polecenia . Poniższy przykład tworzy przestrzeń nazw o nazwie my-namespace:

    kubectl create namespace my-namespace
    
  2. ClusterResourcePlacement Utwórz obiekt interfejsu API w klastrze centrum, aby propagować przestrzeń nazw do klastrów członkowskich i wdrożyć go przy użyciu kubectl apply -f polecenia . Poniższy przykład ClusterResourcePlacement tworzy obiekt o nazwie crp i używa my-namespace przestrzeni nazw z zasadami PickAll umieszczania do propagowania przestrzeni nazw do wszystkich klastrów członkowskich:

    kubectl apply -f - <<EOF
    apiVersion: placement.kubernetes-fleet.io/v1
    kind: ClusterResourcePlacement
    metadata:
      name: crp
    spec:
      resourceSelectors:
        - group: ""
          kind: Namespace
          version: v1          
          name: my-namespace
      policy:
        placementType: PickAll
    EOF
    
  3. Sprawdź postęp propagacji zasobów przy użyciu kubectl get clusterresourceplacement polecenia . Poniższy przykład sprawdza stan ClusterResourcePlacement obiektu o nazwie crp:

    kubectl get clusterresourceplacement crp
    

    Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:

    NAME   GEN   SCHEDULED   SCHEDULEDGEN   APPLIED   APPLIEDGEN   AGE
    crp    2     True        2              True      2            10s
    
  4. Wyświetl szczegóły crp obiektu przy użyciu kubectl describe crp polecenia . W poniższym przykładzie ClusterResourcePlacement opisano obiekt o nazwie crp:

    kubectl describe clusterresourceplacement crp
    

    Dane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:

    Name:         crp
    Namespace:    
    Labels:       <none>
    Annotations:  <none>
    API Version:  placement.kubernetes-fleet.io/v1
    Kind:         ClusterResourcePlacement
    Metadata:
      Creation Timestamp:  2024-04-01T18:55:31Z
      Finalizers:
        kubernetes-fleet.io/crp-cleanup
        kubernetes-fleet.io/scheduler-cleanup
      Generation:        2
      Resource Version:  6949
      UID:               815b1d81-61ae-4fb1-a2b1-06794be3f986
    Spec:
      Policy:
        Placement Type:  PickAll
      Resource Selectors:
        Group:                 
        Kind:                  Namespace
        Name:                  my-namespace
        Version:               v1
      Revision History Limit:  10
      Strategy:
        Type:  RollingUpdate
    Status:
      Conditions:
        Last Transition Time:   2024-04-01T18:55:31Z
        Message:                found all the clusters needed as specified by the scheduling policy
        Observed Generation:    2
        Reason:                 SchedulingPolicyFulfilled
        Status:                 True
        Type:                   ClusterResourcePlacementScheduled
        Last Transition Time:   2024-04-01T18:55:36Z
        Message:                All 3 cluster(s) are synchronized to the latest resources on the hub cluster
        Observed Generation:    2
        Reason:                 SynchronizeSucceeded
        Status:                 True
        Type:                   ClusterResourcePlacementSynchronized
        Last Transition Time:   2024-04-01T18:55:36Z
        Message:                Successfully applied resources to 3 member clusters
        Observed Generation:    2
        Reason:                 ApplySucceeded
        Status:                 True
        Type:                   ClusterResourcePlacementApplied
      Observed Resource Index:  0
      Placement Statuses:
        Cluster Name:  membercluster1
        Conditions:
          Last Transition Time:  2024-04-01T18:55:31Z
          Message:               Successfully scheduled resources for placement in membercluster1 (affinity score: 0, topology spread score: 0): picked by scheduling policy
          Observed Generation:   2
          Reason:                ScheduleSucceeded
          Status:                True
          Type:                  ResourceScheduled
          Last Transition Time:  2024-04-01T18:55:36Z
          Message:               Successfully Synchronized work(s) for placement
          Observed Generation:   2
          Reason:                WorkSynchronizeSucceeded
          Status:                True
          Type:                  WorkSynchronized
          Last Transition Time:  2024-04-01T18:55:36Z
          Message:               Successfully applied resources
          Observed Generation:   2
          Reason:                ApplySucceeded
          Status:                True
          Type:                  ResourceApplied
        Cluster Name:            membercluster2
        Conditions:
          Last Transition Time:  2024-04-01T18:55:31Z
          Message:               Successfully scheduled resources for placement in membercluster2 (affinity score: 0, topology spread score: 0): picked by scheduling policy
          Observed Generation:   2
          Reason:                ScheduleSucceeded
          Status:                True
          Type:                  ResourceScheduled
          Last Transition Time:  2024-04-01T18:55:36Z
          Message:               Successfully Synchronized work(s) for placement
          Observed Generation:   2
          Reason:                WorkSynchronizeSucceeded
          Status:                True
          Type:                  WorkSynchronized
          Last Transition Time:  2024-04-01T18:55:36Z
          Message:               Successfully applied resources
          Observed Generation:   2
          Reason:                ApplySucceeded
          Status:                True
          Type:                  ResourceApplied
        Cluster Name:            membercluster3
        Conditions:
          Last Transition Time:  2024-04-01T18:55:31Z
          Message:               Successfully scheduled resources for placement in membercluster3 (affinity score: 0, topology spread score: 0): picked by scheduling policy
          Observed Generation:   2
          Reason:                ScheduleSucceeded
          Status:                True
          Type:                  ResourceScheduled
          Last Transition Time:  2024-04-01T18:55:36Z
          Message:               Successfully Synchronized work(s) for placement
          Observed Generation:   2
          Reason:                WorkSynchronizeSucceeded
          Status:                True
          Type:                  WorkSynchronized
          Last Transition Time:  2024-04-01T18:55:36Z
          Message:               Successfully applied resources
          Observed Generation:   2
          Reason:                ApplySucceeded
          Status:                True
          Type:                  ResourceApplied
      Selected Resources:
        Kind:     Namespace
        Name:     my-namespace
        Version:  v1
    Events:
      Type    Reason                     Age   From                                   Message
      ----    ------                     ----  ----                                   -------
      Normal  PlacementScheduleSuccess   108s  cluster-resource-placement-controller  Successfully scheduled the placement
      Normal  PlacementSyncSuccess       103s  cluster-resource-placement-controller  Successfully synchronized the placement
      Normal  PlacementRolloutCompleted  103s  cluster-resource-placement-controller  Resources have been applied to the selected clusters
    

Czyszczenie zasobów

Jeśli nie chcesz już używać ClusterResourcePlacement obiektu, możesz go usunąć za pomocą kubectl delete polecenia . Poniższy przykład usuwa ClusterResourcePlacement obiekt o nazwie crp:

kubectl delete clusterresourceplacement crp

Następne kroki

Aby dowiedzieć się więcej na temat propagacji zasobów, zobacz następujące zasoby: