Gere inventário para integrações de terceiros

Esta página descreve como gerar um inventário de clusters para uma frota existente. Um inventário de clusters para uma frota permite-lhe trabalhar com integrações de código aberto e de terceiros que usam a especificação ClusterProfile.

Um inventário de clusters é o equivalente de código aberto de uma frota: um agrupamento lógico de clusters do Kubernetes e outros recursos que podem ser geridos em conjunto. A especificação ClusterProfile contém informações que são um subconjunto das informações numa frota.

A funcionalidade de sincronização ClusterProfile é uma sincronização unidirecional entre uma frota e um inventário de clusters. Quando a sincronização do ClusterProfile está ativada, a frota é a fonte de verdade, e todas as alterações à frota são aplicadas automaticamente ao inventário do cluster pela sincronização do ClusterProfile. As alterações feitas diretamente aos recursos do perfil do cluster não são aplicadas à frota.

Antes de começar

  1. Certifique-se de que seguiu os pré-requisitos gerais para trabalhar com frotas.

  2. Crie uma frota ou identifique uma frota existente com a qual trabalhar.

Ative a sincronização do ClusterProfile

A sincronização do ClusterProfile é executada em relação a um cluster na frota. Este cluster é denominado cluster central e pode ser usado para executar controladores de vários clusters que precisam de informações sobre os restantes clusters na frota. Alguns exemplos de controladores de vários clusters incluem os controladores do Argo CD e o orquestrador de vários clusters. Recomendamos que não execute outras cargas de trabalho no cluster do hub.

Ative a sincronização ClusterProfile num cluster adicionando a etiqueta fleet-clusterinventory-management-cluster=true. Pode fazer o seguinte:

Depois de ativar a funcionalidade de sincronização ClusterProfile para uma frota, esta cria automaticamente um perfil de cluster para cada cluster na frota através da API ClusterProfile. Estes perfis de clusters são criados, atualizados e eliminados automaticamente quando são feitas alterações à frota.

Ative a sincronização de ClusterProfile num novo cluster

Para criar um cluster para o cluster central e ativar a sincronização do ClusterProfile, use o seguinte comando:

gcloud container clusters create CLUSTER --location LOCATION --enable-fleet
    --labels=fleet-clusterinventory-management-cluster=true

Substitua o seguinte:

  • CLUSTER: o nome do seu recursogoogle_container_cluster.
  • LOCATION: a localização onde o cluster é criado.

Por predefinição, os perfis de cluster são criados no espaço de nomes fleet-cluster-inventory. Para alterar o espaço de nomes, especifique a etiqueta fleet-clusterinventory-namespace.

gcloud container clusters update CLUSTER --location LOCATION
    --update-labels=fleet-clusterinventory-namespace=NAMESPACE

Substitua o seguinte:

  • CLUSTER: o nome do seu recursogoogle_container_cluster.
  • LOCATION: a localização onde o cluster é criado.
  • NAMESPACE: o espaço de nomes onde os perfis de cluster são gerados. Se não for especificado, os perfis de cluster são gerados no espaço de nomes fleet-cluster-inventory.

Ative a sincronização do ClusterProfile num cluster existente

Para ativar a sincronização do ClusterProfile num cluster existente, use o seguinte comando:

gcloud container clusters update CLUSTER --location LOCATION
    --update-labels=fleet-clusterinventory-management-cluster=true

Substitua o seguinte:

  • CLUSTER: o nome do seu recursogoogle_container_cluster.
  • LOCATION: a localização onde o cluster é criado.

Por predefinição, os perfis de cluster são criados no espaço de nomes fleet-cluster-inventory. Para alterar o espaço de nomes, especifique a etiqueta fleet-clusterinventory-namespace.

gcloud container clusters update CLUSTER --location LOCATION
    --update-labels=fleet-clusterinventory-namespace=NAMESPACE

Substitua o seguinte:

  • CLUSTER: o nome do seu recursogoogle_container_cluster.
  • LOCATION: a localização onde o cluster é criado.
  • NAMESPACE: o espaço de nomes onde os perfis de cluster são gerados. Se não for especificado, os perfis de cluster são gerados no espaço de nomes fleet-cluster-inventory.

Verifique se a sincronização do ClusterProfile está ativada

Verifique se a sincronização do ClusterProfile está ativada, confirmando se o cluster do hub inclui a etiqueta fleet-clusterinventory-management-cluster = true. Para tal, use o seguinte comando:

gcloud container clusters describe CLUSTER --location LOCATION

Substitua o seguinte:

  • CLUSTER: o nome do seu recursogoogle_container_cluster.
  • LOCATION: a localização onde o cluster é criado.

O resultado deve ser semelhante ao seguinte:

resourceLabels:
  fleet-clusterinventory-management-cluster: 'true'

Valide os recursos do perfil do cluster gerados

Verifique se os recursos do perfil do cluster são gerados no cluster do hub através do seguinte comando:

gcloud container clusters get-credentials CLUSTER --location LOCATION

kubectl get clusterprofiles -n fleet-cluster-inventory

Substitua o seguinte:

  • CLUSTER: o nome do seu recursogoogle_container_cluster.
  • LOCATION: a localização onde o cluster é criado.

O resultado deve ser semelhante ao seguinte:

NAME                           AGE
cluster-1-us-west1             10s
cluster-2-us-west1             20s

Este resultado deve incluir um perfil de cluster para cada cluster na frota. O nome do perfil do cluster tem o formato MEMBERSHIP-LOCATION.

Veja o conteúdo do perfil do cluster

Para ver o conteúdo do perfil de cluster de um cluster específico, use o seguinte comando:

kubectl get clusterprofile CLUSTER-LOCATION -n fleet-cluster-inventory -o yaml

Substitua o seguinte:

  • CLUSTER: o nome do seu recursogoogle_container_cluster.
  • LOCATION: a localização onde o cluster é criado.

O resultado deve ser semelhante ao seguinte:

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

Desative a sincronização do ClusterProfile

Desative a sincronização do ClusterProfile no cluster central da frota removendo a etiqueta fleet-clusterinventory-management-cluster:

gcloud container clusters update CLUSTER --location LOCATION \
    --remove-labels=fleet-clusterinventory-management-cluster

Substitua o seguinte:

  • CLUSTER: o nome do seu recursogoogle_container_cluster.
  • LOCATION: a localização onde o cluster é criado.

O que se segue?