Guia de início rápido: sincronizar configs de um repositório Git

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

  1. 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.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Make sure that you have the following role or roles on the project: Kubernetes Engine Admin

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. 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.

    4. 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

    1. In the Google Cloud console, go to the IAM page.

      Acessar o IAM
    2. Selecione o projeto.
    3. Clique em Conceder acesso.
    4. No campo Novos principais, digite seu identificador de usuário. Normalmente, é o endereço de e-mail de uma Conta do Google.

    5. Na lista Selecionar papel, escolha um.
    6. Para conceder outros papéis, adicione-os clicando em Adicionar outro papel.
    7. Clique em Salvar.
    8. 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:

      1. Ative a API do Google Kubernetes Engine.

        Acessar o GKE

      2. No console Google Cloud , acesse a página do Kubernetes Engine.

        Acessar o Google Kubernetes Engine

      3. Clique em Criar.

      4. Na seção Autopilot, selecione Configurar.

      5. Na seção Noções básicas do cluster, insira cs-cluster no campo Nome. Não altere os outros campos.

      6. 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ê 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:

      1. No console Google Cloud , acesse a página Configuração na seção Recursos.

        Acessar a configuração

      2. Clique em Instalar o Config Sync.
      3. Selecione a versão do Config Sync que você quer usar.
      4. Em Opções de instalação, selecione Instalar o Config Sync em clusters individuais.
      5. Na tabela Clusters disponíveis, selecione cs-cluster e clique em Instalar Config Sync. Na guia Configurações, você verá o status do cs-cluster como Ativado após alguns minutos.
      6. No painel do Config Sync, clique em Implantar pacote de cluster.
      7. Na tabela Selecionar clusters para implantação do pacote, selecione cs-cluster e clique em Continuar.
      8. Deixe a opção Pacote hospedado no Git selecionada e clique em Continuar.
      9. No campo Package name, insira sample-repository.
      10. No campo URL do repositório, insira https://github.com/GoogleCloudPlatform/anthos-config-management-samples.
      11. No campo Caminho, digite config-sync-quickstart/multirepo/root.
      12. Não mude os valores padrão dos outros campos.
      13. 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.

      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ório root, são separadas das configurações no nível do namespace, representadas pelo repositório namespaces. 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:

      • 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 objeto RepoSync informa ao Config Sync para sincronizar as configurações do namespace gamestore de um caminho diferente. Neste exemplo, o objeto RepoSync aponta para o diretório config-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.

      O repositório de namespace contém configurações específicas do aplicativo para o namespace gamestore. Por exemplo, o arquivo configmap-inventory.yaml contém dados de inventário para o aplicativo gamestore. 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

      1. Acesse o menu do GKE no console Google Cloud .

        Acessar o GKE

      2. Ao lado de cs-cluster, clique em Ações e depois em Excluir.

      3. Quando solicitado a confirmar, clique em Excluir novamente.

      A seguir