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
Certifique-se de que seguiu os pré-requisitos gerais para trabalhar com frotas.
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:
- Crie um novo cluster para usar como cluster central. Consulte a secção seguinte para ativar a sincronização do ClusterProfile num novo cluster.
- Identifique um cluster na frota para usar como cluster central. Consulte a secção seguinte para ativar a sincronização de ClusterProfile num cluster existente.
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 recurso
google_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 recurso
google_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 recurso
google_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 recurso
google_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 recurso
google_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 recurso
google_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 recurso
google_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 recurso
google_container_cluster - LOCATION: a localização onde o cluster é criado.
O que se segue?
- Para ver detalhes sobre a integração da sincronização do ClusterProfile com o Argo CD, consulte o artigo Sincronizador do ClusterProfile do Argo CD.
- O orquestrador de vários clusters usa perfis de cluster. Ajuda a agendar implementações em vários clusters e várias regiões. Para mais detalhes, consulte o artigo Vista geral do orquestrador de vários clusters.