Neste guia de início rápido, mostramos como usar o Config Sync para implementar uma abordagem de GitOps no gerenciamento dos clusters do Google Kubernetes Engine. Com um fluxo de trabalho do GitOps você usa um repositório Git como a única fonte de verdade para as configurações do cluster.
Ao usar o Config Sync, você tem os seguintes benefícios:
- Impor consistência:ajuda a garantir que todos os clusters tenham a mesma configuração, reduzindo o risco de desvio de configuração.
- Melhorar a segurança:gerencie e audite centralmente as configurações do cluster, facilitando a aplicação de políticas de segurança.
- Aumentar a velocidade:automatize o lançamento de mudanças de configuração, permitindo que você implante mudanças com mais rapidez e confiabilidade.
Neste tutorial, você cria um cluster do GKE e configura o Config Sync para sincronizar arquivos de configuração de um repositório de amostra. Este tutorial ajuda você a entender como o Config Sync funciona e oferece experiência usando o Config Sync para gerenciar seus clusters de maneira consistente e automatizada.
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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify 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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Make sure that you have the following role or roles on the project: Kubernetes Engine 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 column 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 - Selecione o projeto.
- Clique em Conceder acesso.
-
No campo Novos principais, digite seu identificador de usuário. Normalmente, é o endereço de e-mail de uma Conta do Google.
- Na lista Selecionar papel, escolha um.
- Para conceder outros papéis, adicione-os clicando em Adicionar outro papel.
- Clique em Salvar.
Ative a API do Google Kubernetes Engine.
No console Google Cloud , acesse a página do Kubernetes Engine.
Clique em add_box Criar.
Na seção Autopilot, selecione Configurar.
Na seção Noções básicas do cluster, insira
cs-cluster
no campo Nome. Não altere os outros campos.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.
- No console Google Cloud , acesse a página Configuração na seção Recursos.
- Clique em add Instalar o Config Sync.
- Selecione a versão do Config Sync que você quer usar.
- 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 do Config Sync, clique em Implantar pacote de cluster.
- 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
.- Criação de namespace:arquivos como
namespace-gamestore.yaml
criam os namespaces. - Recursos no escopo do cluster:arquivos que afetam todo o cluster incluem recursos como objetos
ClusterRole
, que adicionam funções em todo o cluster que concedem permissões. - Conectar repositórios de namespace:o arquivo de chave nessa configuração
de vários repositórios é o
reposync-gamestore.yaml
. Esse objetoRepoSync
informa ao Config Sync para sincronizar as configurações do namespacegamestore
de um caminho diferente. Neste exemplo, o objetoRepoSync
aponta para o diretórioconfig-sync-quickstart/multirepo/ namespaces/gamestore
no mesmo repositório. No entanto, em um cenário real, você pode apontar para um repositório Git diferente. Acesse o menu do GKE no console 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.
- Saiba mais sobre como validar configs.
Criar 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:
Configurar seu cluster
Agora que você tem um cluster, é possível configurar o Config Sync para sincronizar arquivos de configuração de um repositório Git.
Para configurar o Config Sync no console Google Cloud , siga estas etapas:
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.
Ver detalhes do pacote
Para conferir os objetos gerenciados pelo Config Sync, acesse a guia Pacotes e clique em
cs-cluster
. A página de detalhes do pacote oferece uma visão geral de todos os recursos sincronizados, incluindo o tipo de recurso e o namespace em que ele está sincronizado.(Opcional) Conheça o repositório de exemplo
As configurações aplicadas ao cluster são definidas no repositório
/config-sync-quickstart/multirepo/
. Este exemplo demonstra uma configuração de vários repositórios em que as configurações no nível de administrador do cluster, representadas pelo repositórioroot
, são separadas das configurações no nível do namespace, representadas pelo repositórionamespaces
. Neste exemplo, essas configurações são divididas em pastas diferentes. Em um cenário real, você pode armazenar configurações em dois repositórios diferentes com permissões de acesso distintas.Em um nível alto, os repositórios raiz ou no nível do cluster geralmente são gerenciados por um administrador central e contêm recursos em todo o cluster, configurações e políticas de namespace. Os repositórios no nível do namespace geralmente contêm configurações específicas para namespaces individuais e são gerenciados por equipes de aplicativos.
Alguns dos principais tipos de arquivos que você pode armazenar em um repositório raiz incluem:
O repositório de namespace contém configurações específicas do aplicativo para o namespace
gamestore
. Por exemplo, o arquivoconfigmap-inventory.yaml
contém dados de inventário para o aplicativogamestore
. Esse tipo de configuração do GitOps permite que as equipes de aplicativos tenham mais autonomia sobre as próprias implantações e recursos no escopo do namespace sem precisar modificar o repositório raiz central.Limpar
A seguir
-