En esta página, se describe cómo generar un inventario de clústeres para una flota existente. Un inventario de clústeres para 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 administrar juntos. La especificación de 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 se habilita la sincronización de ClusterProfile, la flota es la fuente de información, y la sincronización de ClusterProfile aplica automáticamente cualquier cambio en la flota al inventario de clústeres. Los cambios que se realicen directamente en los recursos del perfil del clúster no se aplicarán a la flota.
Antes de comenzar
Asegúrate de haber seguido los requisitos generales para trabajar con flotas.
Crea una flota o identifica una existente con la que trabajar.
Habilita la sincronización de ClusterProfile
La sincronización de ClusterProfile se ejecuta en un clúster de la flota. Este clúster se denomina clúster central y se puede usar para ejecutar controladores de varios clústeres que necesitan información sobre el resto de los clústeres de la flota. Entre los ejemplos de controladores de varios clústeres, se incluyen los controladores de Argo CD y el orquestador de varios clústeres. Te recomendamos que no ejecutes otras cargas de trabajo en el clúster central.
Habilita la sincronización de ClusterProfile en un clúster agregando la etiqueta fleet-clusterinventory-management-cluster=true
. Puedes realizar lo siguiente:
- Crea un clúster nuevo para usarlo 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 en la flota para usarlo como clúster central. Consulta la siguiente sección para habilitar la sincronización de ClusterProfile en un clúster existente.
Después de habilitar la función de sincronización de ClusterProfile para una flota, se crea automáticamente un perfil de clúster para cada clúster de la flota con la API de ClusterProfile. Estos perfiles de clúster se crean, actualizan y borran automáticamente cuando se realizan cambios en la flota.
Habilita 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
Reemplaza lo siguiente:
- CLUSTER: Es el nombre de tu recurso
google_container_cluster
. - LOCATION: Es 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
Reemplaza lo siguiente:
- CLUSTER: Es el nombre de tu recurso
google_container_cluster
. - LOCATION: Es la ubicación en la que se crea el clúster.
- NAMESPACE: Es el espacio de nombres en el que se generan los perfiles del clúster.
Si no se especifica, los perfiles del clúster se generan en el espacio de nombres
fleet-cluster-inventory
.
Habilita la sincronización de ClusterProfile en un clúster existente
Para habilitar la sincronización de ClusterProfile en un clúster existente, usa el siguiente comando:
gcloud container clusters update CLUSTER --location LOCATION
--update-labels=fleet-clusterinventory-management-cluster=true
Reemplaza lo siguiente:
- CLUSTER: Es el nombre de tu recurso
google_container_cluster
. - LOCATION: Es 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
Reemplaza lo siguiente:
- CLUSTER: Es el nombre de tu recurso
google_container_cluster
. - LOCATION: Es la ubicación en la que se crea el clúster.
- NAMESPACE: Es el espacio de nombres en el que se generan los perfiles del clúster.
Si no se especifica, los perfiles del clúster se generan en el espacio de nombres
fleet-cluster-inventory
.
Verifica que la sincronización de ClusterProfile esté habilitada
Verifica que la sincronización de ClusterProfile esté habilitada. Para ello, verifica que el clúster central incluya la etiqueta fleet-clusterinventory-management-cluster = true
. Para ello, usa el siguiente comando:
gcloud container clusters describe CLUSTER --location LOCATION
Reemplaza lo siguiente:
- CLUSTER: Es el nombre de tu recurso
google_container_cluster
. - LOCATION: Es la ubicación en la que se crea el clúster.
El resultado debería ser similar al siguiente ejemplo:
resourceLabels:
fleet-clusterinventory-management-cluster: 'true'
Verifica los recursos del perfil de clúster generados
Verifica que los recursos del perfil del clúster se generen en el clúster central con el siguiente comando:
gcloud container clusters get-credentials CLUSTER --location LOCATION
kubectl get clusterprofiles -n fleet-cluster-inventory
Reemplaza lo siguiente:
- CLUSTER: Es el nombre de tu recurso
google_container_cluster
. - LOCATION: Es la ubicación en la que se crea el clúster.
El resultado debería ser similar al 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 del clúster tiene el formato MEMBERSHIP-
LOCATION.
Cómo 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
Reemplaza lo siguiente:
- CLUSTER: Es el nombre de tu recurso
google_container_cluster
. - LOCATION: Es la ubicación en la que se crea el clúster.
El resultado debería ser similar al 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
Inhabilita la sincronización de ClusterProfile
Inhabilita la sincronización de ClusterProfile en el clúster central de la flota quitando la etiqueta fleet-clusterinventory-management-cluster
:
gcloud container clusters update CLUSTER --location LOCATION \
--remove-labels=fleet-clusterinventory-management-cluster
Reemplaza lo siguiente:
- CLUSTER: Es el nombre de tu recurso
google_container_cluster
. - LOCATION: Es la ubicación en la que se crea el clúster.
¿Qué sigue?
- Para obtener detalles sobre la integración de la sincronización de ClusterProfile con Argo CD, consulta Argo CD ClusterProfile Syncer.
- Multi-cluster Orchestrator usa perfiles de clústeres. Ayuda a programar implementaciones multirregionales y con múltiples clústeres. Para obtener más detalles, consulta la Descripción general de Multi-Cluster Orchestrator.