Guia de início rápido: sincronizar configs de um repositório
Neste tutorial, você cria um cluster do Google Kubernetes Engine (GKE) e usa o Config Sync para sincronizar com as configurações no multirrepositório de amostras do Anthos Config Management.
Imagine que sua equipe de conformidade seja responsável por garantir que todos os membros da organização sigam as regras internas. Para aplicar essas regras, a equipe de conformidade criou configurações que foram adicionadas ao repositório de amostras. Cada cluster na organização precisa se sincronizar com o repositório, e você é responsável por criar e sincronizar clusters.
Antes de começar
- Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud. Saiba como verificar se o faturamento está ativado em um projeto.
-
No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud. Saiba como verificar se o faturamento está ativado em um projeto.
-
Verifique se você tem os seguintes papéis na projeto: GKE Hub Admin
Verificar os papéis
-
No console do Google Cloud, abra a página IAM.
Acessar IAM - Selecionar um projeto.
-
Encontre a linha que contém seu endereço de e-mail na coluna Participante.
Caso seu endereço de e-mail não esteja nessa coluna, isso significa que você não tem papéis.
- Na coluna Papel da linha com seu endereço de e-mail, verifique se a lista de papéis inclui os papéis necessários.
Conceder os papéis
-
No console do Google Cloud, abra a página IAM.
Acesse o IAM - Selecionar um projeto.
- Clique em CONCEDER ACESSO.
- No campo Novos participantes, digite seu endereço de e-mail.
- Na lista Selecionar um papel, escolha um.
- Para conceder outros papéis, clique em Adicionar outro papel e adicione cada papel adicional.
- Clique em Save.
-
Crie um cluster
Nesta seção, você criará um cluster que poderá ser usado neste tutorial. Em um cenário real, é provável que você gerencie vários clusters, mas para simplificar este tutorial, você vai criar e gerenciar somente um cluster.
Para criar um cluster, siga estas etapas:
No console do Google Cloud, acesse a página Kubernetes Engine.
Se você estiver usando o GKE pela primeira vez, clique em Ativar para ativar a API Kubernetes Engine.
Clique em add_box Criar.
Na seção Padrão, clique em Configurar.
Na seção Noções básicas do cluster, adicione
cs-cluster
ao campo Nome e deixe os outros campos com os padrões recomendados.No menu de navegação do Cluster, selecione Segurança.
Na página Segurança, marque a caixa de seleção Ativar Identidade da carga de trabalho e não altere os outros campos com os valores padrão.
Clique em Criar. Você verá a página Clusters do Kubernetes. A criação do cluster leva alguns minutos. Quando uma marca de seleção verde aparecer na coluna Status ao lado do cluster, significa que ele está pronto.
Configurar seu cluster
Agora que você criou um cluster, é possível configurar o Config Sync para sincronizar
com as configurações no diretório config-sync-quickstart
do repositório de amostras do Anthos Config Management.
Para configurar o Config Sync no Console do Google Cloud, siga estas etapas:
No console do Google Cloud, ative a API GKE Hub.
No console do Google Cloud, acesse o painel do Config Sync.
Na caixa Configurações do Config Sync, clique em add Instalar o Config Sync.
Na tabela Clusters disponíveis, selecione
cs-cluster
e clique em Próxima.Desmarque a caixa de seleção Ativar Policy Controller e clique em Concluir.
Deixe a caixa de seleção Ativar Config Sync ativada.
Na lista Repositório, selecione Personalizado.
No campo URL, adicione
https://github.com/GoogleCloudPlatform/anthos-config-management-samples
Clique em
Mostrar configurações avançadas.No campo Diretório de configuração, adicione
config-sync-quickstart/multirepo/root
Não mude os valores padrão dos outros campos.
Clique em Concluir.
A página Configurações do Config Sync será aberta. Após alguns minutos, você verá a opção Sincronizado na coluna Status de sincronização da configuração da
cs-cluster
.
Agora que o Config Sync está sincronizado com um repositório, ele reconciliará continuamente o estado dos clusters com as configurações no repositório.
Conheça a instalação do Config Sync
Nas seções a seguir, use o Cloud Shell para explorar o repositório do qual
cs-cluster
está sendo sincronizado e confirmar se as configurações no repositório
estão sendo implantadas.
Abrir o Cloud Shell
-
No Console do Google Cloud, ative o Cloud Shell.
Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.
-
Para usar os comandos das seções a seguir, configure o acesso à linha de comando
kubectl
:gcloud container clusters get-credentials cs-cluster \ --zone ZONE \ --project PROJECT_ID
Substitua:
ZONE
: a zona em que você criou o clusterPROJECT_ID
: ID do projeto
A saída é esta:
Fetching cluster endpoint and auth data. kubeconfig entry generated for cs-cluster.
Se for solicitada sua autorização, clique em Autorizar.
Examinar seu cluster e repositório
O diretório config-sync-quickstart
inclui as configurações ClusterRole,
CustomResourceDefinition, Rolebinding, Namespace e RepoSync. Ele
também inclui configurações para o operador Prometheus para monitoramento.
Essas configurações são aplicadas assim que o Config Sync é configurado para ler
no repositório.
Todos os objetos gerenciados pelo Config Sync têm o rótulo app.kubernetes.io/managed-by
definido como configmanagement.gke.io
. É possível
usar esse rótulo para visualizar objetos gerenciados.
Para listar os namespaces gerenciados pelo Config Sync, execute o seguinte comando:
kubectl get ns -l app.kubernetes.io/managed-by=configmanagement.gke.io
O resultado será assim:
NAME STATUS AGE
gamestore Active 58s
monitoring Active 58s
Navegue até a pasta /config-sync-quickstart/multirepo/ do repositório do Anthos Config Management no GitHub para explorar as configurações que fizeram esses namespaces. serem criados.
É possível examinar outros objetos, como ClusterRole, Reposyncs, CRDs e Rolebindings da mesma maneira.
Verificar o status da sincronização
Com o Config Sync, é possível usar a ferramenta de linha de comando nomos
. Essa ferramenta oferece outras funcionalidades para o Config Sync.
Nesta seção, use o comando nomos status
para verificar se o Config Sync sincronizou todas as configurações com o cluster:
nomos status
O resultado será assim:
*gke_PROJECT_ID_ZONE_cs-cluster
--------------------
<root>:root-sync https://github.com/GoogleCloudPlatform/anthos-config-management-samples/config-sync-quickstart/multirepo/root@main
SYNCED @ 2023-02-03 16:58:42 +0000 UTC 1fbab5c90af9029b26451fec92e9900d8db23aee
Managed resources:
NAMESPACE NAME STATUS SOURCEHASH
clusterrole.rbac.authorization.k8s.io/namespace-reader Current 1fbab5c
clusterrole.rbac.authorization.k8s.io/prometheus-acm Current 1fbab5c
clusterrole.rbac.authorization.k8s.io/prometheus-operator Current 1fbab5c
clusterrole.rbac.authorization.k8s.io/webstore-admin Current 1fbab5c
clusterrolebinding.rbac.authorization.k8s.io/prometheus-acm Current 1fbab5c
clusterrolebinding.rbac.authorization.k8s.io/prometheus-operator Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/alertmanagerconfigs.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/alertmanagers.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/anvils.acme.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/podmonitors.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/probes.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/prometheuses.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/prometheusrules.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/servicemonitors.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/thanosrulers.monitoring.coreos.com Current 1fbab5c
customresourcedefinition.apiextensions.k8s.io/webstores.marketplace.com Current 1fbab5c
namespace/gamestore Current 1fbab5c
namespace/monitoring Current 1fbab5c
gamestore reposync.configsync.gke.io/repo-sync Current 1fbab5c
gamestore rolebinding.rbac.authorization.k8s.io/gamestore-admin Current 1fbab5c
gamestore rolebinding.rbac.authorization.k8s.io/gamestore-webstore-admin Current 1fbab5c
monitoring deployment.apps/prometheus-operator Current 1fbab5c
monitoring prometheus.monitoring.coreos.com/acm Current 1fbab5c
monitoring service/prometheus-acm Current 1fbab5c
monitoring service/prometheus-operator Current 1fbab5c
monitoring serviceaccount/prometheus-acm Current 1fbab5c
monitoring serviceaccount/prometheus-operator Current 1fbab5c
monitoring servicemonitor.monitoring.coreos.com/acm-service Current 1fbab5c
--------------------
gamestore:repo-sync https://github.com/GoogleCloudPlatform/anthos-config-management-samples/config-sync-quickstart/multirepo/namespaces/gamestore@main
SYNCED @ 2023-02-03 16:58:51 +0000 UTC 1fbab5c90af9029b26451fec92e9900d8db23aee
Managed resources:
NAMESPACE NAME STATUS SOURCEHASH
gamestore configmap/store-inventory Current 1fbab5c
gamestore webstore.marketplace.com/gameplace Current 1fbab5c
Nessa saída, é possível ver que cs-cluster
está sendo sincronizado
em dois repositórios. Além disso, como todos os recursos têm o status
Current
, o estado do recurso corresponde ao estado pretendido.
Limpar
Acesse o menu do GKE no console do Google Cloud.
Ao lado de
cs-cluster
, clique em more_vert Ações e depois em delete Excluir.Quando solicitado a confirmar, clique em Excluir novamente.
A seguir
- Saiba mais sobre como validar configs.