Início rápido: sincronize configurações a partir de um repositório Git

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

  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.

      Aceder ao IAM
    2. Selecione o projeto.
    3. Clique em Conceder acesso.
    4. No campo Novos responsáveis, introduza o identificador do utilizador. Normalmente, este é o endereço de email de uma Conta Google.

    5. Na lista Selecionar uma função, selecione uma função.
    6. Para conceder funções adicionais, clique em Adicionar outra função e adicione cada função adicional.
    7. Clique em Guardar.
    8. 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:

      1. Ative a API Google Kubernetes Engine.

        Aceda ao GKE

      2. Na Google Cloud consola, aceda à página Kubernetes Engine.

        Aceda ao Google Kubernetes Engine

      3. Clique em Criar.

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

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

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

      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:

      1. Na Google Cloud consola, aceda à página Configuração na secção Funcionalidades.

        Aceda à configuração

      2. Clique em Instalar Config Sync.
      3. Selecione a versão do Config Sync que 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. No separador Definições, deve ver o estado do cs-cluster como Ativado após alguns minutos.
      6. No painel de controlo do Config Sync, clique em Implementar pacote de cluster.
      7. Na tabela Selecionar clusters para implementação de pacotes, selecione cs-cluster e, de seguida, clique em Continuar.
      8. Deixe a opção Pacote alojado no Git selecionada e, de seguida, clique em Continuar.
      9. No campo Nome do pacote, introduza sample-repository.
      10. No campo URL do repositório, introduza https://github.com/GoogleCloudPlatform/anthos-config-management-samples.
      11. No campo Caminho, introduza config-sync-quickstart/multirepo/root.
      12. Deixe todos os outros campos com os respetivos valores predefinidos.
      13. Clique em Implementar pacote.

        Após alguns minutos, deve ver Sincronizado na coluna Estado da sincronização para cs-cluster.

      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ório root, estão separadas das configurações ao nível do espaço de nomes, representadas pelo repositório namespaces. 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:

      • 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 objeto RepoSync indica ao Config Sync para sincronizar as configurações do espaço de nomes gamestore a partir de um caminho diferente. Neste exemplo, o objeto RepoSync aponta para o diretório config-sync-quickstart/multirepo/ namespaces/gamestore no mesmo repositório, mas, num cenário do mundo real, pode apontar para um repositório Git diferente.

      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 ficheiro configmap-inventory.yaml contém dados de inventário para a aplicação gamestore. 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

      1. Aceda ao menu do GKE na Google Cloud consola.

        Aceda ao GKE

      2. Junto a cs-cluster, clique em Ações e, de seguida, em Eliminar.

      3. Quando lhe for pedido que confirme, clique novamente em Eliminar.

      O que se segue?