Visão geral do Config Sync

O Config Sync permite que operadores de cluster usem arquivos chamados configs, armazenados em um repositório do Git, para gerenciar clusters únicos, clusters multilocatários e implantações de vários clusters do Kubernetes.

Alguns configs são manifestos de objetos do Kubernetes. Outros configs não são manifestos de objetos, mas fornecem as informações necessárias para o Config Sync. É possível gravar configs em YAML ou JSON. O Config Sync monitora a atualização desses arquivos e aplica alterações a todos os clusters relevantes automaticamente.

Graças à abordagem de configuração como código, é possível gerenciar a configuração dos clusters do Google Kubernetes Engine usando os mesmos princípios que você já usa para gerenciar os aplicativos implantados no Kubernetes. O Config Sync permite:

  • exigir revisões de código antes que as alterações sejam enviadas ao ambiente ativo e auditar exatamente qual confirmação causou uma alteração na configuração;
  • reduzir o risco de "operações de sombra", em que alterações não verificadas são enviadas para clusters ativos e é difícil entender as diferenças entre a configuração documentada e seu ambiente ativo. É possível usar o Config Sync para exigir que todas as alterações na configuração do cluster sejam propagadas e bloquear o acesso direto à API Kubernetes;
  • alterar a configuração de centenas de clusters com uma confirmação do Git em vez de escrever scripts para executar milhares de comandos kubectl apply manualmente;
  • garantir que uma mudança seja enviada para cada cluster relevante (e apenas a eles), com base nos metadados aplicados a cada um;
  • usar os pipelines de integração contínua/implantação contínua (CI/CD, na sigla em inglês) para testar suas alterações e aplicá-las automaticamente quando os testes forem aprovados;
  • usar uma estratégia de "reverter e investigar" para reverter as alterações recentes e colocar seus clusters ativos novamente em bom estado de funcionamento antes de corrigir a alteração problemática e aplicá-la como uma nova confirmação. Essa estratégia reduz a inatividade devido a interrupções relacionadas à configuração.

O Config Sync sincroniza os estados dos clusters com o repositório do Git. O controlador personalizado do Operador do Config Sync monitora seu repositório do Git e os estados dos clusters, mantendo-os consistentes para cada objeto Kubernetes escolhido. Se o Operador do Config Sync não alterar um recurso, ele será deixado no último estado válido.

O Config Sync pode configurar um único cluster ou vários clusters a partir de um único repositório do Git.

Pré-requisitos

O Config Sync usa Namespaces, rótulos e anotações como partes fundamentais da implementação, então é útil entender bem esses conceitos antes de começar.

Antes de escrever uma configuração, entenda os campos obrigatórios e opcionais permitidos para esse objeto do Kubernetes.

Além disso, o Config Sync traz algumas novas terminologias e conceitos. Eles são discutidos rapidamente em Conceitos do Config Sync, com links para mais informações sobre cada conceito.

Novos conceitos

Os novos conceitos a seguir são fundamentais para o Config Sync.

Config

Um config é uma declaração de configuração do Kubernetes escrita em YAML ou JSON que o Config Sync lê e aplica a um ou mais clusters para criar ou configurar um objeto ou recurso do Kubernetes nesses clusters. Os configs são armazenados em um repositório do Git. Veja também a definição de repositório. Um config pode conter qualquer detalhe de configuração que pode ser aplicado a um cluster do Kubernetes usando kubectl edit ou kubectl apply. É possível até mesmo configurar recursos personalizados que já existem no cluster. Vários configs podem ser definidos em um único arquivo.

Para mais informações, consulte Como criar configs.

Repo

O repo é o repositório do Git em que os configs são armazenados, incluindo o config para o próprio Config Sync. Todos os configs precisam ser armazenados no mesmo repo. Ao configurar o Config Sync, você configura o repo, a ramificação e o subdiretório que o Config Sync monitora em busca de alterações.

A estrutura do repo é importante e é discutida em mais detalhes em Como usar o repo.

Diretório de namespace abstrato

O Config Sync tem um mecanismo chamado namespaces abstratos, que permite aplicar políticas a vários namespaces relacionados sem duplicar configs, podendo substituir ou estender um config para um determinado namespace ou conjunto de namespaces. Os namespaces abstratos funcionam usando uma hierarquia de estilo de sistema de arquivos no repo.

No repo, a estrutura de diretórios do subdiretório namespaces/ determina quais políticas se aplicam a um namespace, usando um mecanismo semelhante a uma árvore do sistema de arquivos. Os namespaces podem ser aninhados em subdiretórios, chamados diretórios de namespaces abstratos.

Para mais informações, consulte Visão geral da herança de namespace.

Como visualizar e verificar arquivos

O Config Sync fornece uma API. Os comandos nomos e nomos.exe consomem a API e simplificam o processo de configuração do repo e dos configs de validação.

Para mais informações, consulte Como usar o comando nomos.

A seguir