Neste tutorial, você cria um cluster da edição Enterprise do Google Kubernetes Engine (GKE) e usa o Config Sync para sincronizar com as configurações no repositório de amostras de vários repositórios.
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
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Make sure that you have the following role or roles on the project: GKE Hub Admin
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Acessar o IAM - Selecionar um projeto.
- Clique em CONCEDER ACESSO.
-
No campo Novos principais, insira seu identificador de usuário. Normalmente, é o endereço de e-mail de uma Conta do Google.
- Na lista Selecionar um papel, escolha um.
- Para conceder outros papéis, clique em Adicionar outro papel e adicione cada papel adicional.
- Clique em Salvar.
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 Autopilot, selecione 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.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.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 a página Configuração na seção Recursos.
Clique em add Instalar o Config Sync.
Selecione Upgrades automáticos para ativar o Config Sync para fazer upgrade das versões automaticamente.
Em Opções de instalação, selecione Instalar o Config Sync em clusters individuais.
Na tabela Clusters disponíveis, selecione
cs-cluster
e clique em Instalar Config Sync. Na guia Configurações, você verá o status docs-cluster
como Ativado após alguns minutos.No painel Config Sync, clique em Implantar pacote.
Na tabela Selecionar clusters para implantação do pacote, selecione
cs-cluster
e clique em Continuar.Deixe a opção Pacote hospedado no Git selecionada e clique em Continuar.
No campo Package name, insira
sample-repository
.No campo URL do repositório, insira
https://github.com/GoogleCloudPlatform/anthos-config-management-samples
.No campo Caminho, digite
config-sync-quickstart/multirepo/root
.Não mude os valores padrão dos outros campos.
Clique em Implantar pacote.
Após alguns minutos, você verá a opção Sincronizado na coluna Status de sincronizaçã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
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
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 comoconfigmanagement.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 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 statusCurrent
, 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.
-