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 Cloud de Confiance 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 Cloud de Confiance ou a CLI do 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 informação 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 informação 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ção não requer autorizações adicionais.
Se a sua fonte de dados fidedigna 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 Cloud de Confiance 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 Cloud de Confiance consola, a seleção de clusters individuais regista automaticamente esses clusters na sua frota.
- Na Cloud de Confiance 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 Cloud de Confiance 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 verdade como o URL do repositório.
- Opcional: atualize o campo Revisão para verificar se não está a usar o
HEADpredefinido. - 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
mainpredefinida.
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 cargas 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 quanto tempo o Config Sync espera 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.
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 enablePrepare a configuração criando um ficheiro denominado
apply-spec.yamle copiando o seguinte ficheiro YAML para o mesmo.Pode definir todos os campos
spec.configSyncopcionais de que precisa quando cria o manifesto e, posteriormente, usar comandoskubectlpara a configuração. Também só pode definir o campospec.configSync.enabledcomotruee omitir os campos opcionais. Posteriormente, pode usar comandoskubectlpara criar objetos RootSync adicionais ou RepoSyncs que pode gerir totalmente com comandoskubectlmais 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: falseSubstitua o seguinte:
SOURCE_TYPE: adicionegitpara sincronizar a partir de um repositório Git,ocipara sincronizar a partir de uma imagem OCI ouhelmpara sincronizar a partir de um gráfico Helm. Se não for especificado nenhum valor, o valor predefinido égit.FORMAT: adicioneunstructuredpara usar um repositório não estruturado ou adicionehierarchypara 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 da 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 deTAGouDIGEST. EspecifiqueTAGouDIGESTnoPACKAGE_NAME:- Para extrair por
TAG:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG - Para extrair por
DIGEST:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
- Para extrair por
REVISION: a revisão do 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ítica 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 adicionougcpserviceaccountcomosecretType, adicione o endereço de email da conta do serviço Google. Por exemplo,acm@PROJECT_ID.s3ns.iam.gserviceaccount.com.METRICS_EMAIL: o email da Cloud de Confiance by S3NS 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 Kubernetesdefaultno espaço de nomesconfig-management-monitoringdeve 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_IDSubstitua 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 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: o ramo 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 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 Cloud de Confiance 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.
Substitua os pedidos e os limites de recursos
Na maioria dos casos, os pedidos e os limites de recursos predefinidos para os componentes do Config Sync são suficientes. No entanto, pode substituir os pedidos e os limites da CPU e da memória predefinidas para garantir que os componentes têm recursos suficientes para funcionar de forma fiável. Por exemplo, se estiver a sincronizar um grande número de recursos com o cluster, pode ter de fornecer mais recursos ao reconciler-manager.
Pode substituir os pedidos e os limites de recursos para alguns componentes do Config Sync usando o campo deploymentOverrides no ficheiro apply-spec.yaml quando instala o Config Sync com a CLI gcloud. Não pode
usar o campo deploymentOverrides para substituir outros campos numa implementação,
como o número de réplicas.
O campo deploymentOverrides só pode substituir os pedidos de recursos e os limites para implementações que não sejam um reconciliador de raiz ou espaço de nomes, como o reconciler-manager. Se precisar de substituir os recursos de um reconciliador de raiz ou espaço de nomes, pode usar o campo spec.override.resources no objeto RootSync ou RepoSync.
O exemplo seguinte mostra como usar o campo deploymentOverrides para definir um novo pedido e limite de CPU e um novo pedido e limite de memória para o contentor reconciler-manager:
applySpecVersion: 1
spec:
configSync:
enabled: true
# ... other fields...
deploymentOverrides:
- name: reconciler-manager
namespace: config-management-system
containers:
- name: reconciler-manager
cpuRequest: 50m
cpuLimit: 100m
memoryRequest: 256Mi
memoryLimit: 512Mi
Depois de criar o ficheiro apply-spec.yaml, aplique-o executando o seguinte comando:
gcloud beta container fleet config-management apply \
--membership=MEMBERSHIP_NAME \
--config=apply-spec.yaml \
--project=PROJECT_ID
Para ver uma lista completa dos campos que pode substituir, consulte a documentação de referência dos campos de especificação de aplicação do gcloud.
O que se segue?
- Saiba como atualizar o Config Sync.
- Saiba mais sobre os comandos
gcloudpara 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.