Genera inventario para las integraciones de terceros

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

  1. Asegúrate de haber seguido los requisitos generales para trabajar con flotas.

  2. 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:

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?