Share via


Inicio rápido: propagación de recursos desde un clúster de centros de Azure Kubernetes Fleet Manager (Fleet) a clústeres de miembros

En este inicio rápido, aprenderá a propagar recursos desde un clúster de centros de Azure Kubernetes Fleet Manager (Fleet) a clústeres de miembros.

Requisitos previos

Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.

Uso de la API de ClusterResourcePlacement para propagar recursos a clústeres de miembros

El objeto de API ClusterResourcePlacement se usa para propagar recursos de un clúster de centros a clústeres de miembros. El objeto de API ClusterResourcePlacement especifica los recursos que se propagan y la directiva de selección de ubicación que se va a usar al seleccionar clústeres de miembros. El objeto de API ClusterResourcePlacement se crea en el clúster del concentrador y se usa para propagar recursos a clústeres de miembros. En este ejemplo se muestra cómo propagar un espacio de nombres a los clústeres de miembros mediante el objeto de API ClusterResourcePlacement con una directiva de selección de ubicación de PickAll.

Para más información, consulte Propagación de recursos de Kubernetes desde el clúster de centros a clústeres de miembros (versión preliminar) y la documentación de Fleet ascendente.

  1. Cree un espacio de nombres para colocarlo en los clústeres de miembros mediante el comando kubectl create namespace. En el ejemplo siguiente se crea un espacio de nombres denominado my-namespace:

    kubectl create namespace my-namespace
    
  2. Cree un objeto de API ClusterResourcePlacement en el clúster de centros para propagar el espacio de nombres a los clústeres de miembros e impleméntelo mediante el comando kubectl apply -f. En el ejemplo siguiente ClusterResourcePlacement crea un objeto denominado crp y usa el espacio de nombres my-namespace con una directiva de selección de ubicación de PickAll para propagar el espacio de nombres a todos los clústeres de miembros:

    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. Compruebe el progreso de la propagación de recursos mediante el comando kubectl get clusterresourceplacement. En el ejemplo siguiente se comprueba el estado del objeto ClusterResourcePlacement denominado crp:

    kubectl get clusterresourceplacement crp
    

    El resultado debería ser similar al ejemplo siguiente:

    NAME   GEN   SCHEDULED   SCHEDULEDGEN   APPLIED   APPLIEDGEN   AGE
    crp    2     True        2              True      2            10s
    
  4. Vea los detalles del objeto crp mediante el comando kubectl describe crp. En el ejemplo siguiente se describe el objeto ClusterResourcePlacement denominado crp:

    kubectl describe clusterresourceplacement crp
    

    El resultado debería ser similar al ejemplo siguiente:

    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
    

Limpieza de recursos

Si ya no quiere usar el objeto ClusterResourcePlacement, puede eliminarlo mediante el comando kubectl delete. En el ejemplo siguiente se elimina el objeto ClusterResourcePlacement denominado crp:

kubectl delete clusterresourceplacement crp

Pasos siguientes

Para más información sobre la propagación de recursos, consulte los siguientes recursos: