Este início rápido mostra como usar o Config Sync para implementar uma abordagem GitOps para gerir os seus clusters do Google Kubernetes Engine. Com um fluxo de trabalho GitOps, usa um repositório Git como a única fonte de informações fidedignas para as configurações do cluster.
Ao usar o Config Sync, tem as seguintes vantagens:
- Impor consistência: ajuda a garantir que todos os seus clusters têm a mesma configuração, o que reduz o risco de desvio de configuração.
- Melhorar a segurança: faça a gestão e a auditoria centralizadas das configurações do cluster, o que facilita a aplicação de políticas de segurança.
- Aumentar a velocidade: automatize a implementação de alterações de configuração, o que lhe permite implementar alterações de forma mais rápida e fiável.
Neste tutorial, vai criar um cluster do GKE e configurar o Config Sync para sincronizar ficheiros de configuração a partir de um repositório de exemplo. Este tutorial ajuda a compreender como funciona o Config Sync e dá-lhe experiência na utilização do Config Sync para gerir os seus clusters de forma consistente e automática.
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.
Aceder ao IAM - Selecione o projeto.
- Clique em Conceder acesso.
-
No campo Novos responsáveis, introduza o identificador do utilizador. Normalmente, este é o endereço de email de uma Conta Google.
- Na lista Selecionar uma função, selecione uma função.
- Para conceder funções adicionais, clique em Adicionar outra função e adicione cada função adicional.
- Clique em Guardar.
Ative a API Google Kubernetes Engine.
Na Google Cloud consola, aceda à página Kubernetes Engine.
Clique em add_box Criar.
Na secção Autopilot, selecione Configurar.
Na secção Noções básicas do cluster, introduza
cs-cluster
no campo Nome. Deixe todos os outros campos com as predefinições recomendadas.Clique em Criar. Acede à página Clusters do Kubernetes. A criação do cluster demora vários minutos. Quando vir uma marca de verificação verde na coluna Estado junto ao cluster, significa que está pronto.
- Na Google Cloud consola, aceda à página Configuração na secção Funcionalidades.
- Clique em add Instalar Config Sync.
- Selecione a versão do Config Sync que 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. No separador Definições, deve ver o estado docs-cluster
como Ativado após alguns minutos. - No painel de controlo do Config Sync, clique em Implementar pacote de cluster.
- Na tabela Selecionar clusters para implementação de pacotes, selecione
cs-cluster
e, de seguida, clique em Continuar. - Deixe a opção Pacote alojado no Git selecionada e, de seguida, clique em Continuar.
- No campo Nome do pacote, introduza
sample-repository
. - No campo URL do repositório, introduza
https://github.com/GoogleCloudPlatform/anthos-config-management-samples
. - No campo Caminho, introduza
config-sync-quickstart/multirepo/root
. - Deixe todos os outros campos com os respetivos valores predefinidos.
Clique em Implementar pacote.
Após alguns minutos, deve ver Sincronizado na coluna Estado da sincronização para
cs-cluster
.- Criação de espaços de nomes: ficheiros como
namespace-gamestore.yaml
criam os próprios espaços de nomes. - Recursos com âmbito de cluster: os ficheiros que afetam todo o cluster incluem recursos como objetos
ClusterRole
que adicionam funções ao nível do cluster que concedem autorizações. - Associar repositórios de espaço de nomes: o ficheiro de chave nesta configuração de vários repositórios é o ficheiro
reposync-gamestore.yaml
. Este objetoRepoSync
indica ao Config Sync para sincronizar as configurações do espaço de nomesgamestore
a partir de um caminho diferente. Neste exemplo, o objetoRepoSync
aponta para o diretórioconfig-sync-quickstart/multirepo/ namespaces/gamestore
no mesmo repositório, mas, num cenário do mundo real, pode apontar para um repositório Git diferente. Aceda ao menu do GKE na Google Cloud consola.
Junto a
cs-cluster
, clique em more_vert Ações e, de seguida, em delete Eliminar.Quando lhe for pedido que confirme, clique novamente em Eliminar.
- Saiba como validar as configurações.
Crie um cluster
Nesta secção, cria um cluster que pode usar neste tutorial. Embora num cenário real seja provável que faça a gestão de vários clusters, para simplificar este tutorial, só cria e gere um cluster.
Para criar um cluster, conclua os seguintes passos:
Configure o cluster
Agora que tem um cluster, pode configurar o Config Sync para sincronizar ficheiros de configuração a partir de um repositório Git.
Para configurar o Config Sync na Google Cloud consola, conclua os seguintes passos:
Agora que o Config Sync está sincronizado com um repositório, reconcilia continuamente o estado dos seus clusters com as configurações no repositório.
Veja os detalhes do pacote
Para ver os objetos geridos pelo Config Sync, aceda ao separador Packages e clique em
cs-cluster
. A página de detalhes do pacote oferece uma vista geral de todos os recursos sincronizados, incluindo o tipo de recurso e o espaço de nomes com o qual o recurso está sincronizado.(Opcional) Explore o repositório de amostras
As configurações aplicadas ao seu cluster estão definidas no repositório
/config-sync-quickstart/multirepo/
. Este exemplo demonstra uma configuração com vários repositórios em que as configurações ao nível do administrador do cluster, representadas pelo repositórioroot
, estão separadas das configurações ao nível do espaço de nomes, representadas pelo repositórionamespaces
. Neste exemplo, estas configurações estão divididas em pastas diferentes. Num cenário real, pode armazenar configurações em dois repositórios diferentes com autorizações de acesso diferentes.A um nível elevado, os repositórios ao nível do cluster ou raiz são normalmente geridos por um administrador central e contêm recursos ao nível do cluster, configurações de espaços de nomes e políticas. Normalmente, os repositórios ao nível do espaço de nomes contêm configurações específicas de espaços de nomes individuais e são frequentemente geridos por equipas de aplicações.
Seguem-se alguns dos principais tipos de ficheiros que pode armazenar num repositório raiz:
O repositório do espaço de nomes contém configurações específicas da aplicação para o espaço de nomes
gamestore
. Por exemplo, o ficheiroconfigmap-inventory.yaml
contém dados de inventário para a aplicaçãogamestore
. Este tipo de configuração do GitOps permite que as equipas de aplicações tenham mais autonomia sobre as respetivas implementações e recursos com âmbito de espaço de nomes sem necessidade de modificar o repositório raiz central.Limpar
O que se segue?
-