Quickstart: Resources van een Azure Kubernetes Fleet Manager -hubcluster (Fleet) doorgeven aan lidclusters

In deze quickstart leert u hoe u resources vanuit een Azure Kubernetes Fleet Manager-hubcluster (Fleet) doordraagt naar lidclusters.

Vereisten

Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.

ClusterResourcePlacement De API gebruiken om resources door te geven aan lidclusters

Het ClusterResourcePlacement API-object wordt gebruikt om resources van een hubcluster door te geven aan lidclusters. Het ClusterResourcePlacement API-object specificeert de resources die moeten worden doorgegeven en het plaatsingsbeleid dat moet worden gebruikt bij het selecteren van lidclusters. Het ClusterResourcePlacement API-object wordt gemaakt in het hubcluster en wordt gebruikt om resources door te geven aan lidclusters. In dit voorbeeld ziet u hoe u een naamruimte doorgeeft aan lidclusters met behulp van het ClusterResourcePlacement API-object met een PickAll plaatsingsbeleid.

Zie Kubernetes-resourcedoorgifte van hubcluster naar lidclusters (preview) en upstream Fleet-documentatie voor meer informatie.

  1. Maak een naamruimte die u op de lidclusters wilt plaatsen met behulp van de kubectl create namespace opdracht. In het volgende voorbeeld wordt een naamruimte met de naam my-namespacegemaakt:

    kubectl create namespace my-namespace
    
  2. Maak een ClusterResourcePlacement API-object in het hubcluster om de naamruimte door te geven aan de lidclusters en implementeer het met behulp van de kubectl apply -f opdracht. In het volgende voorbeeld ClusterResourcePlacement wordt een object gemaakt met de naam en crp wordt de my-namespace naamruimte met een PickAll plaatsingsbeleid gebruikt om de naamruimte door te geven aan alle lidclusters:

    kubectl apply -f - <<EOF
    apiVersion: placement.kubernetes-fleet.io/v1beta1
    kind: ClusterResourcePlacement
    metadata:
      name: crp
    spec:
      resourceSelectors:
        - group: ""
          kind: Namespace
          version: v1          
          name: my-namespace
      policy:
        placementType: PickAll
    EOF
    
  3. Controleer de voortgang van de resourcedoorgifte met behulp van de kubectl get clusterresourceplacement opdracht. In het volgende voorbeeld wordt de status van het object met de ClusterResourcePlacement naam crpgecontroleerd:

    kubectl get clusterresourceplacement crp
    

    De uitvoer moet er ongeveer uitzien als in de volgende voorbeelduitvoer:

    NAME   GEN   SCHEDULED   SCHEDULEDGEN   APPLIED   APPLIEDGEN   AGE
    crp    2     True        2              True      2            10s
    
  4. Bekijk de details van het crp object met behulp van de kubectl describe crp opdracht. In het volgende voorbeeld wordt het object met de ClusterResourcePlacement naam crpbeschreven:

    kubectl describe clusterresourceplacement crp
    

    De uitvoer moet er ongeveer uitzien als in de volgende voorbeelduitvoer:

    Name:         crp
    Namespace:    
    Labels:       <none>
    Annotations:  <none>
    API Version:  placement.kubernetes-fleet.io/v1beta1
    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
    

Resources opschonen

Als u het ClusterResourcePlacement object niet meer wilt gebruiken, kunt u het verwijderen met behulp van de kubectl delete opdracht. In het volgende voorbeeld wordt het object met de ClusterResourcePlacement naam crpverwijderd:

kubectl delete clusterresourceplacement crp

Volgende stappen

Zie de volgende resources voor meer informatie over het doorgeven van resources: