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 num 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 o resto dos 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?