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