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.
- Lea la introducción conceptual de propagación de recursos para comprender los conceptos y la terminología que se usan en este inicio rápido.
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Necesita un recurso de Fleet con un clúster de centro y clústeres de miembros. Si no tiene uno, vea Creación de un recurso de Azure Kubernetes Fleet Manager y unión a clústeres de miembros mediante la CLI de Azure.
- Los clústeres miembro deben etiquetarse correctamente en el clúster de centro para que coincidan con los criterios de selección deseados. En las etiquetas de ejemplo, se incluyen las de región, entorno, equipo, zonas de disponibilidad, disponibilidad del nodo o cualquier otra que se quiera.
- Necesita acceso a la API de Kubernetes del clúster de centros. Si no tiene acceso, consulte Acceso a la API de Kubernetes del recurso de Fleet con Azure Kubernetes Fleet Manager.
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.
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 denominadomy-namespace
:kubectl create namespace my-namespace
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 comandokubectl apply -f
. En el ejemplo siguienteClusterResourcePlacement
crea un objeto denominadocrp
y usa el espacio de nombresmy-namespace
con una directiva de selección de ubicación dePickAll
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
Compruebe el progreso de la propagación de recursos mediante el comando
kubectl get clusterresourceplacement
. En el ejemplo siguiente se comprueba el estado del objetoClusterResourcePlacement
denominadocrp
: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
Vea los detalles del objeto
crp
mediante el comandokubectl describe crp
. En el ejemplo siguiente se describe el objetoClusterResourcePlacement
denominadocrp
: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:
Azure Kubernetes Service