En esta página se describe cómo generar un inventario de clústeres para una flota. Un inventario de clústeres de una flota te permite trabajar con integraciones de código abierto y de terceros que usan la especificación ClusterProfile.
Un inventario de clústeres es el equivalente de código abierto de una flota: una agrupación lógica de clústeres de Kubernetes y otros recursos que se pueden gestionar conjuntamente. La especificación ClusterProfile contiene información que es un subconjunto de la información de una flota.
La función de sincronización de ClusterProfile es una sincronización unidireccional entre una flota y un inventario de clústeres. Cuando la sincronización de ClusterProfile está habilitada, la flota es la fuente de información veraz y los cambios que se realicen en ella se aplican automáticamente al inventario de clústeres mediante la sincronización de ClusterProfile. Los cambios realizados directamente en los recursos del perfil de clúster no se aplican a la flota.
Antes de empezar
Asegúrate de haber seguido los requisitos generales para trabajar con flotas.
Crea una flota o identifica una que ya tengas para trabajar con ella.
Habilitar la sincronización de ClusterProfile
La sincronización de ClusterProfile se ejecuta en un clúster de la flota. Este clúster se llama clúster central y se puede usar para ejecutar controladores multiclúster que necesiten información sobre el resto de los clústeres de la flota. Entre los controladores multiclústeres se incluyen los controladores de Argo CD y el orquestador multiclúster. Te recomendamos que no ejecutes otras cargas de trabajo en el clúster de concentrador.
Habilita la sincronización de ClusterProfile en un clúster añadiendo la etiqueta fleet-clusterinventory-management-cluster=true
. Puedes hacer lo siguiente:
- Crea un clúster que se usará como clúster central. Consulta la siguiente sección para habilitar la sincronización de ClusterProfile en un clúster nuevo.
- Identifica un clúster de la flota que quieras usar como clúster central. Consulta la siguiente sección para habilitar la sincronización de ClusterProfile en un clúster disponible.
Después de habilitar la función de sincronización ClusterProfile en una flota, se crea automáticamente un perfil de clúster para cada clúster de la flota mediante la API ClusterProfile. Estos perfiles de clúster se crean, actualizan y eliminan automáticamente cuando se hacen cambios en la flota.
Habilitar la sincronización de ClusterProfile en un clúster nuevo
Para crear un clúster para el clúster central y habilitar la sincronización de ClusterProfile, usa el siguiente comando:
gcloud container clusters create CLUSTER --location LOCATION --enable-fleet
--labels=fleet-clusterinventory-management-cluster=true
Haz los cambios siguientes:
- CLUSTER: el nombre de tu
google_container_cluster
recurso. - LOCATION: la ubicación en la que se crea el clúster.
De forma predeterminada, los perfiles de clúster se crean en el espacio de nombres fleet-cluster-inventory
. Para cambiar el espacio de nombres, especifica la etiqueta fleet-clusterinventory-namespace
.
gcloud container clusters update CLUSTER --location LOCATION
--update-labels=fleet-clusterinventory-namespace=NAMESPACE
Haz los cambios siguientes:
- CLUSTER: el nombre de tu
google_container_cluster
recurso. - LOCATION: la ubicación en la que se crea el clúster.
- NAMESPACE: el espacio de nombres donde se generan los perfiles de clúster.
Si no se especifica, los perfiles de clúster se generan en el espacio de nombres
fleet-cluster-inventory
.
Habilitar la sincronización de ClusterProfile en un clúster
Para habilitar la sincronización de ClusterProfile en un clúster ya creado, usa el siguiente comando:
gcloud container clusters update CLUSTER --location LOCATION
--update-labels=fleet-clusterinventory-management-cluster=true
Haz los cambios siguientes:
- CLUSTER: el nombre de tu
google_container_cluster
recurso. - LOCATION: la ubicación en la que se crea el clúster.
De forma predeterminada, los perfiles de clúster se crean en el espacio de nombres fleet-cluster-inventory
. Para cambiar el espacio de nombres, especifica la etiqueta fleet-clusterinventory-namespace
.
gcloud container clusters update CLUSTER --location LOCATION
--update-labels=fleet-clusterinventory-namespace=NAMESPACE
Haz los cambios siguientes:
- CLUSTER: el nombre de tu
google_container_cluster
recurso. - LOCATION: la ubicación en la que se crea el clúster.
- NAMESPACE: el espacio de nombres donde se generan los perfiles de clúster.
Si no se especifica, los perfiles de clúster se generan en el espacio de nombres
fleet-cluster-inventory
.
Verificar que la sincronización de ClusterProfile esté habilitada
Comprueba que la sincronización de ClusterProfile esté habilitada. Para ello, verifica que el clúster de concentrador incluya la etiqueta fleet-clusterinventory-management-cluster = true
. Para ello, usa el siguiente comando:
gcloud container clusters describe CLUSTER --location LOCATION
Sustituye lo siguiente:
- CLUSTER: el nombre de tu
google_container_cluster
recurso. - LOCATION: la ubicación en la que se crea el clúster.
La salida debería ser similar a la siguiente:
resourceLabels:
fleet-clusterinventory-management-cluster: 'true'
Verificar los recursos del perfil de clúster generados
Verifica que los recursos del perfil de clúster se han generado en el clúster de concentrador con el siguiente comando:
gcloud container clusters get-credentials CLUSTER --location LOCATION
kubectl get clusterprofiles -n fleet-cluster-inventory
Haz los cambios siguientes:
- CLUSTER: el nombre de tu
google_container_cluster
recurso. - LOCATION: la ubicación en la que se crea el clúster.
La salida debería ser similar a la siguiente:
NAME AGE
cluster-1-us-west1 10s
cluster-2-us-west1 20s
Este resultado debe incluir un perfil de clúster para cada clúster de la flota.
El nombre del perfil de clúster tiene el formato
MEMBERSHIP-
LOCATION.
Ver el contenido del perfil del clúster
Para ver el contenido del perfil de un clúster específico, usa el siguiente comando:
kubectl get clusterprofile CLUSTER-LOCATION -n fleet-cluster-inventory -o yaml
Haz los cambios siguientes:
- CLUSTER: el nombre de tu
google_container_cluster
recurso. - LOCATION: la ubicación en la que se crea el clúster.
La salida debería ser similar a la siguiente:
apiVersion: multicluster.x-k8s.io/v1alpha1
kind: ClusterProfile
metadata:
annotations:
fleet.gke.io/membershipName: projects/123456789/locations/us-west1/memberships/cluster-1
labels:
x-k8s.io/cluster-manager: gke-fleet
name: cluster-1-us-west1
namespace: fleet-cluster-inventory
Inhabilitar la sincronización de ClusterProfile
Inhabilita la sincronización de ClusterProfile en el clúster de concentrador de la flota quitando la etiqueta fleet-clusterinventory-management-cluster
:
gcloud container clusters update CLUSTER --location LOCATION \
--remove-labels=fleet-clusterinventory-management-cluster
Haz los cambios siguientes:
- CLUSTER: el nombre de tu
google_container_cluster
recurso. - LOCATION: la ubicación en la que se crea el clúster.
Siguientes pasos
- Para obtener información sobre cómo integrar la sincronización de ClusterProfile con Argo CD, consulta Argo CD ClusterProfile Syncer.
- Multi-cluster Orchestrator usa perfiles de clúster. Ayuda a programar implementaciones multiclúster y multirregión. Para obtener más información, consulta la descripción general de Multi-Cluster Orchestrator.