Com o Config Sync, pode gerir os seus recursos do Kubernetes sincronizando configurações a partir de uma fonte central de verdade, como um repositório Git, uma imagem OCI ou um gráfico Helm. Se as instruções de instalação predefinidas não forem adequadas às suas necessidades, pode ter de personalizar a instalação do Config Sync.
Esta página mostra como fazer uma instalação e uma configuração avançadas do Config Sync. O processo de instalação inclui o seguinte:
- Instalar o Config Sync em clusters individuais através da Google Cloud consola, da CLI do Google Cloud ou do Terraform.
- Configurar o repositório raiz, incluindo o tipo de origem, o formato e a autenticação.
- Validar a instalação e a configuração bem-sucedidas do Config Sync.
Limitações
A sincronização de configuração não suporta a configuração de helm
como o tipo de origem
usando a consola Google Cloud ou a CLI Google Cloud. Pode configurar o objeto
RootSync
ou RepoSync
para sincronizar a partir de um repositório Helm através da
API Kubernetes ou
declará-lo noutra fonte de verdade.
Consulte a
Configuração do repositório Helm
para mais informações.
Antes de começar
Antes de instalar o Config Sync, prepare a sua fonte de verdade e um cluster adequado.
Conceda acesso do Config Sync à sua fonte de informação
Para sincronizar a configuração de uma fonte de verdade com os seus clusters, o Config Sync requer acesso só de leitura ao seu repositório. Para autorizar o Config Sync a ler as suas configurações, conclua os seguintes passos:
Criar ou ter acesso a uma fonte de verdade que contenha os ficheiros de configuração que quer que o Config Sync sincronize com os seus clusters. Para mais informações, consulte os seguintes recursos:
- Adicione configurações a uma fonte de verdade: informações conceptuais sobre as configurações.
- Práticas recomendadas de GitOps: sugestões e práticas recomendadas gerais para organizar e gerir o seu repositório.
- Use um repositório não estruturado: recomendações para usar e organizar um repositório não estruturado.
Se a sua fonte de dados fidedigna for pública, não é necessária nenhuma ação adicional. A sincronização de configurações não requer autorizações adicionais.
Se a sua fonte de dados fidedignos for privada, conclua as instruções numa das seguintes páginas:
Reveja os requisitos do cluster
Antes de criar um cluster, reveja os requisitos do cluster.
Instale o Config Sync
Quando instala o Config Sync através da Google Cloud consola ou da
CLI Google Cloud, o Config Sync cria automaticamente um objeto RootSync denominado
root-sync
. Pode usar comandos kubectl
para modificar root-sync
e adicionar configurações do Config Sync adicionais. Para mais informações, consulte o artigo
Configure o Config Sync com comandos kubectl
.
Consola
Instale o Config Sync
Para instalar o Config Sync, todos os clusters têm de estar registados numa frota. Quando instala o Config Sync na Google Cloud consola, a seleção de clusters individuais regista automaticamente esses clusters na sua frota.
- 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 uma das seguintes opções:
- Instalar o Config Sync em toda a frota (recomendado): o Config Sync é instalado em todos os clusters da frota.
- Instalar o Config Sync em clusters individuais: o Config Sync é instalado nos clusters que selecionar. Todos os clusters selecionados são registados automaticamente na sua frota.
- Se estiver a instalar o Config Sync em clusters individuais, na tabela Clusters disponíveis, selecione os clusters nos quais quer instalar o Config Sync.
- Clique em Instalar Config Sync. No separador Definições, após alguns minutos, deve ver Ativado na coluna Estado para os clusters na sua frota.
Implemente um pacote
Depois de registar os seus clusters numa frota e instalar o Config Sync, pode configurar o Config Sync para implementar um pacote num cluster a partir de uma fonte de verdade. Pode implementar o mesmo pacote em vários clusters ou implementar pacotes diferentes em clusters diferentes. Pode editar um pacote após a implementação, exceto algumas definições, como o nome do pacote e o tipo de sincronização. Para mais informações, consulte o artigo Faça a gestão de pacotes.
Para implementar um pacote, conclua os seguintes passos:
Na Google Cloud consola, aceda ao painel de controlo do Config Sync.
Clique em Implementar pacote.
Na tabela Selecionar clusters para implementação de pacotes, selecione o cluster ao qual quer implementar um pacote e, de seguida, clique em Continuar.
Selecione Pacote alojado no Git ou Pacote alojado no OCI como o tipo de origem e, de seguida, clique em Continuar.
Na secção Detalhes do pacote, introduza um Nome do pacote, que identifica o objeto RootSync ou RepoSync.
No campo Tipo de sincronização, escolha Sincronização ao nível do cluster ou Sincronização ao nível do espaço de nomes como o tipo de sincronização.
A sincronização com âmbito de cluster cria um objeto RootSync e a sincronização com âmbito de espaço de nomes cria um objeto RepoSync. Para mais informações sobre estes objetos, consulte o artigo Arquitetura da sincronização de configuração.
Na secção Origem, conclua o seguinte:
Para origens alojadas num repositório Git, introduza os seguintes campos:
- Introduza o URL do repositório Git que está a usar como fonte de informação como o URL do repositório.
- Opcional: atualize o campo Revisão para verificar se não está a usar o
HEAD
predefinido. - Opcional: atualize o campo Caminho se não quiser sincronizar a partir do repositório raiz.
- Opcional: atualize o campo Branch se não estiver a usar a ramificação
main
predefinida.
Para origens alojadas numa imagem OCI, introduza os seguintes campos:
- Introduza o URL da imagem OCI que está a usar como fonte de dados fidedignos como imagem.
- Introduza o caminho do diretório a partir do qual quer sincronizar, relativo ao diretório raiz, como o Directory.
(Opcional): expanda a secção Definições avançadas para concluir o seguinte:
Selecione um Tipo de autenticação. O Config Sync precisa de acesso só de leitura à sua fonte de informações verdadeiras para ler os ficheiros de configuração na origem e aplicá-los aos seus clusters. A menos que a sua origem não exija autenticação, como um repositório público, certifique-se de que concede ao Config Sync acesso apenas de leitura ao seu repositório Git, imagem OCI ou gráfico Helm (apenas na CLI gcloud). Escolha o mesmo tipo de autenticação que configurou quando instalou o Config Sync:
- Nenhuma: não use autenticação.
- SSH: autentique-se através de um par de chaves SSH.
- Cookiefile: autentique-se através de um
cookiefile
. - Token: autentique-se através de um token de acesso ou de uma palavra-passe.
- Google Cloud Repository: use uma conta de serviço Google para aceder a um repositório do Cloud Source Repositories. Selecione esta opção apenas se a Federação de identidades de carga de trabalho para o GKE não estiver ativada no seu cluster.
- Workload Identity: use uma conta de serviço Google para aceder a um repositório do Cloud Source Repositories.
Introduza um número em segundos para definir o Tempo de espera de sincronização, que determina durante quanto tempo o Config Sync aguarda entre tentativas de obtenção da fonte de verdade.
Introduza um URL de proxy Git para o proxy HTTPS a usar quando comunicar com a fonte de informações fidedignas.
Escolha Hierarquia para alterar o Formato de origem.
O valor predefinido Não estruturado é recomendado na maioria dos casos, uma vez que lhe permite organizar a sua fonte de dados fidedignos da forma que quiser.
Clique em Implementar pacote.
É feito o redirecionamento para a página Packages do Config Sync. Após alguns minutos, deve ver Sincronizado na coluna Estado da sincronização para o cluster que configurou.
gcloud
Antes de continuar, certifique-se de que registou os seus clusters numa frota.
Ative a funcionalidade de frota
ConfigManagement
:gcloud beta container fleet config-management enable
Prepare a configuração criando um ficheiro denominado
apply-spec.yaml
e copiando o seguinte ficheiro YAML para o mesmo.Pode definir todos os campos
spec.configSync
opcionais de que precisa quando cria o manifesto e, mais tarde, usar os comandoskubectl
para a configuração. Também só pode definir o campospec.configSync.enabled
comotrue
e omitir os campos opcionais. Posteriormente, pode usar comandoskubectl
para criar objetos RootSync adicionais ou RepoSyncs que pode gerir totalmente com comandoskubectl
mais tarde.# apply-spec.yaml applySpecVersion: 1 spec: configSync: enabled: true # If you don't have a source of truth yet, omit the # following fields. You can configure them later. sourceType: SOURCE_TYPE sourceFormat: FORMAT syncRepo: REPO syncRev: REVISION secretType: SECRET_TYPE gcpServiceAccountEmail: EMAIL metricsGcpServiceAccountEmail: METRICS_EMAIL policyDir: DIRECTORY preventDrift: false
Substitua o seguinte:
SOURCE_TYPE
: adicionegit
para sincronizar a partir de um repositório Git,oci
para sincronizar a partir de uma imagem OCI ouhelm
para sincronizar a partir de um gráfico Helm. Se não for especificado nenhum valor, o valor predefinido égit
.FORMAT
: adicioneunstructured
para usar um repositório não estruturado ou adicionehierarchy
para usar um repositório hierárquico. Estes valores são sensíveis a maiúsculas e minúsculas. Este campo é opcional e o valor predefinido éhierarchy
. Recomendamos que adicioneunstructured
, porque este formato permite organizar as configurações da forma mais conveniente para si.REPO
: adicione o URL da fonte de confiança. Os URLs dos repositórios Git e Helm usam o protocolo HTTPS ou SSH. Por exemplo,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
. Se planeia usar o SSH como o seusecretType
, introduza o URL com o protocolo SSH. Este campo é obrigatório e, se não introduzir um protocolo, o URL é tratado como um URL HTTPS.Os URLs de OCI usam o seguinte formato:
LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME
. Por predefinição, a imagem é extraída da etiquetalatest
, mas pode extrair imagens através deTAG
ouDIGEST
. EspecifiqueTAG
ouDIGEST
noPACKAGE_NAME
:- Para puxar por
TAG
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
- Para puxar por
DIGEST
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
- Para puxar por
REVISION
: a revisão de Git (etiqueta ou hash) ou o nome do ramo a partir do qual sincronizar. Quando usar um hash, tem de ser um hash completo e não uma forma abreviada.SECRET_TYPE
: uma das seguintes opçõessecretTypes
:git
none
: Não usar autenticação.ssh
: Use um par de chaves SSH.cookiefile
: use umcookiefile
.token
: use um token.gcpserviceaccount
: use uma conta de serviço Google para aceder a um repositório do Cloud Source Repositories ou do Secure Source Manager. Se selecionar este tipo de autenticação, tem de criar uma associação de políticas do IAM depois de concluir a configuração do Config Sync. Para ver detalhes, consulte o separador Conta de serviço Google da secção Conceda acesso do Config Sync ao Git com uma conta de serviço Google.gcenode
: use uma conta de serviço Google para aceder a um Cloud Source Repositories. Selecione esta opção apenas se a Workload Identity Federation para o GKE não estiver ativada no seu cluster.githubapp
: use uma app GitHub para autenticar um repositório do GitHub.
Para mais informações sobre estes tipos de autenticação, consulte o artigo Conceda acesso do Config Sync ao Git.
oci
none
: Não usar autenticaçãogcenode
: use a conta de serviço predefinida do Compute Engine para aceder a uma imagem no Artifact Registry. Selecione apenas esta opção se a Workload Identity Federation para o GKE não estiver ativada no seu cluster.gcpserviceaccount
: use uma conta de serviço Google para aceder a uma imagem.
leme
token
: use um token.gcenode
: use a conta de serviço predefinida do Compute Engine para aceder a uma imagem no Artifact Registry. Selecione apenas esta opção se a Workload Identity Federation para o GKE não estiver ativada no seu cluster.gcpserviceaccount
: use uma conta de serviço Google para aceder a uma imagem.
EMAIL
: se adicionougcpserviceaccount
comosecretType
, adicione o endereço de email da conta do serviço Google. Por exemplo,acm@PROJECT_ID.iam.gserviceaccount.com
.METRICS_EMAIL
: o email da Google Cloud conta de serviço (GSA) usada para exportar métricas do Config Sync para o Cloud Monitoring. O GSA deve ter a função do IAM Monitoring Metric Writer (roles/monitoring.metricWriter
). A ServiceAccount do Kubernetesdefault
no espaço de nomesconfig-management-monitoring
deve estar associada à GSA.DIRECTORY
: o caminho do diretório a sincronizar, relativo à raiz do repositório Git. Todos os subdiretórios do diretório especificado são incluídos e sincronizados com o cluster. O valor predefinido é o diretório de raiz do repositório.
Para ver uma lista completa dos campos que pode adicionar ao campo
spec
, consulte campos gcloud.Aplique o ficheiro
apply-spec.yaml
. Se estiver a usar um manifesto existente, deve aplicar o ficheiro ao cluster que quer configurar com as definições que obteve no comando anterior:gcloud beta container fleet config-management apply \ --membership=MEMBERSHIP_NAME \ --config=CONFIG_YAML_PATH \ --project=PROJECT_ID
Substitua o seguinte:
MEMBERSHIP_NAME
: o nome do membro da frota que escolheu quando registou o cluster. Pode encontrar o nome comgcloud container fleet memberships list
.CONFIG_YAML_PATH
: o caminho para o ficheiroapply-spec.yaml
.PROJECT_ID
: o ID do seu projeto.
Terraform
Para cada cluster no qual quer configurar o Config Sync,
aplique um bloco de recursos google_gkehub_feature_membership
que contenha
um bloco configmanagement
e config_sync
, como no exemplo seguinte:
git
Substitua o seguinte:
REPO
: o URL do repositório Git que contém os seus ficheiros de configuração.BRANCH
: a ramificação do repositório, por exemplo,main
.DIRECTORY
: o caminho no repositório Git que representa o nível superior do repositório que quer sincronizar.SECRET
: o tipo de autenticação secreta.
oci
Substitua o seguinte:
REPO
: o URL para o repositório de imagens da OCI que contém os seus ficheiros de configuração.DIRECTORY
: o caminho absoluto do diretório que contém os recursos que quer sincronizar. Para usar o diretório raiz, deixe este campo em branco.SECRET
: o tipo de autenticação secreta.
Repita este processo para cada cluster que quer sincronizar.
Para mais informações sobre a utilização do Terraform, consulte o artigo Apoio técnico do Terraform para o Config Sync.
Depois de configurar o repositório raiz, pode, opcionalmente, configurar a sincronização a partir de vários repositórios, incluindo outros repositórios raiz e repositórios de espaço de nomes. Os repositórios de espaços de nomes são úteis se quiser um repositório que contenha configurações com âmbito de espaço de nomes sincronizadas com um espaço de nomes específico em todos os clusters.
Valide a instalação
Depois de instalar e configurar o Config Sync, pode verificar se a instalação foi concluída com êxito.
gcloud
Execute o seguinte comando:
nomos status
Uma instalação bem-sucedida mostra um estado de SYNCED
ou PENDING
.
Para mais detalhes sobre as informações fornecidas pelo nomos status
, incluindo
erros comunicados, consulte o artigo Verifique o estado da sincronização da configuração
na documentação da ferramenta de linha de comandos nomos
.
consola
Conclua os seguintes passos:
- Na Google Cloud consola, aceda à página Configuração na secção Funcionalidades.
- No separador Pacotes, verifique a coluna Estado da sincronização na tabela de clusters. Uma instalação bem-sucedida do Config Sync tem o estado Instalado. Uma fonte única de informações fidedignas configurada com êxito tem o estado Sincronizado.
O que se segue?
- Saiba como atualizar o Config Sync.
- Saiba mais sobre os comandos
gcloud
para configurar o Config Sync. - Descubra como configurar a sincronização a partir de vários repositórios.
- Use o comando
nomos
. - Leia a introdução à resolução de problemas do Config Sync.
- Saiba como desinstalar o Config Sync.
- Reveja as autorizações de sincronização da configuração predefinidas.