Nesta página, descrevemos como gerar um inventário de cluster para uma frota atual. Um inventário de clusters para uma frota permite 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 gerenciados juntos. A especificação ClusterProfile contém informações que são um subconjunto das informações em uma frota.
O recurso 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 informações, e todas as mudanças feitas nela são aplicadas automaticamente ao inventário de clusters pela sincronização do ClusterProfile. As mudanças feitas diretamente nos recursos de perfil do cluster não são aplicadas à frota.
Antes de começar
Verifique se você seguiu os pré-requisitos gerais para trabalhar com frotas.
Crie uma frota ou identifique uma frota para trabalhar.
Ativar a sincronização do ClusterProfile
A sincronização do ClusterProfile é executada em um cluster na frota. Esse cluster é chamado de cluster de hub e pode ser usado para executar controladores multicluster que precisam de informações sobre o restante dos clusters na frota. Exemplos de controladores de vários clusters incluem controladores do Argo CD e orquestrador de vários clusters. Recomendamos que você não execute outras cargas de trabalho no cluster do hub.
Ative a sincronização do ClusterProfile em um cluster adicionando o rótulo
fleet-clusterinventory-management-cluster=true
. Faça o seguinte:
- Crie um cluster para usar como cluster de hub. Consulte a seção a seguir para ativar a sincronização do ClusterProfile em um novo cluster.
- Identifique um cluster na frota para usar como cluster de hub. Consulte a seção a seguir para ativar a sincronização do ClusterProfile em um cluster atual.
Depois de ativar o recurso de sincronização ClusterProfile para uma frota, ele cria automaticamente um perfil de cluster para cada cluster na frota usando a API ClusterProfile. Esses perfis de cluster são criados, atualizados e excluídos automaticamente quando são feitas mudanças na frota.
Ativar a sincronização do ClusterProfile em um novo cluster
Para criar um cluster para o hub 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:
- CLUSTER: o nome do recurso
google_container_cluster
. - LOCATION: o local em que o cluster é criado.
Por padrão, os perfis de cluster são criados no namespace fleet-cluster-inventory
. Para mudar o namespace, especifique o rótulo
fleet-clusterinventory-namespace
.
gcloud container clusters update CLUSTER --location LOCATION
--update-labels=fleet-clusterinventory-namespace=NAMESPACE
Substitua:
- CLUSTER: o nome do recurso
google_container_cluster
. - LOCATION: o local em que o cluster é criado.
- NAMESPACE: o namespace em que os perfis de cluster são gerados.
Se não for especificado, os perfis de cluster serão gerados no namespace
fleet-cluster-inventory
.
Ativar a sincronização do ClusterProfile em um cluster atual
Para ativar a sincronização do ClusterProfile em um cluster atual, use o seguinte comando:
gcloud container clusters update CLUSTER --location LOCATION
--update-labels=fleet-clusterinventory-management-cluster=true
Substitua:
- CLUSTER: o nome do recurso
google_container_cluster
. - LOCATION: o local em que o cluster é criado.
Por padrão, os perfis de cluster são criados no namespace fleet-cluster-inventory
. Para mudar o namespace, especifique o rótulo
fleet-clusterinventory-namespace
.
gcloud container clusters update CLUSTER --location LOCATION
--update-labels=fleet-clusterinventory-namespace=NAMESPACE
Substitua:
- CLUSTER: o nome do recurso
google_container_cluster
. - LOCATION: o local em que o cluster é criado.
- NAMESPACE: o namespace em que os perfis de cluster são gerados.
Se não for especificado, os perfis de cluster serão gerados no namespace
fleet-cluster-inventory
.
Verificar se a sincronização do ClusterProfile está ativada
Verifique se a sincronização do ClusterProfile está ativada. Para isso, confira se o cluster do hub
inclui o rótulo
fleet-clusterinventory-management-cluster = true
. Para isso, use o seguinte comando:
gcloud container clusters describe CLUSTER --location LOCATION
Substitua:
- CLUSTER: o nome do recurso
google_container_cluster
. - LOCATION: o local em que o cluster é criado.
A saída será semelhante a esta:
resourceLabels:
fleet-clusterinventory-management-cluster: 'true'
Verificar os recursos de perfil de cluster gerados
Verifique se os recursos de perfil do cluster foram gerados no cluster do hub usando o seguinte comando:
gcloud container clusters get-credentials CLUSTER --location LOCATION
kubectl get clusterprofiles -n fleet-cluster-inventory
Substitua:
- CLUSTER: o nome do recurso
google_container_cluster
. - LOCATION: o local em que o cluster é criado.
A resposta precisa ser semelhante a esta:
NAME AGE
cluster-1-us-west1 10s
cluster-2-us-west1 20s
Essa saída precisa incluir um perfil para cada cluster na frota.
O nome do perfil do cluster tem o formato
MEMBERSHIP-
LOCATION.
Ver o conteúdo do perfil do cluster
Para ver o conteúdo do perfil de um cluster específico, use o seguinte comando:
kubectl get clusterprofile CLUSTER-LOCATION -n fleet-cluster-inventory -o yaml
Substitua:
- CLUSTER: o nome do recurso
google_container_cluster
. - LOCATION: o local em que o cluster é criado.
A resposta precisa ser semelhante a esta:
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
Desativar a sincronização do ClusterProfile
Desative a sincronização do ClusterProfile no cluster de hub da frota removendo o rótulo
fleet-clusterinventory-management-cluster
:
gcloud container clusters update CLUSTER --location LOCATION \
--remove-labels=fleet-clusterinventory-management-cluster
Substitua:
- CLUSTER: o nome do recurso
google_container_cluster
. - LOCATION: o local em que o cluster é criado.
A seguir
- Para detalhes sobre a integração da sincronização do ClusterProfile com o Argo CD, consulte Sincronizador do ClusterProfile do Argo CD.
- O Multi-cluster Orchestrator usa perfis de cluster. Ele ajuda a programar implantações multirregionais e em vários clusters. Para mais detalhes, consulte Visão geral do Multi-Cluster Orchestrator.