Instale o Anthos Config Management.

Esta página é destinada a administradores da plataforma.

Nesta página, descrevemos como instalar o Anthos Config Management.

O Anthos Config Management permite que você aplique políticas e configurações aos clusters do Anthos de maneira declarativa, implantando automaticamente uma nova configuração de um repositório Git central. Consulte a documentação do Anthos Config Management para saber mais.

É possível instalar o Anthos Config Management usando o Centro de gerenciamento ou o kubectl. Você precisa ter um repositório Git antes de instalar o Anthos Config Management.

Instalar a partir da Central de gerenciamento

Para configurar o Anthos Config Management no cluster de usuário, navegue até a guia Gerenciamento de configuração e clique em Configuração. Siga as instruções na página para concluir a configuração.

Também é possível atualizar ou fazer upgrade de uma instalação atual do Anthos Config Management. Clique no link na coluna Versão para modificar a configuração atual.

Instalar com o kubectl

A instalação do Anthos Config Management com kubectl é um processo de duas etapas. Primeiro, configure as chaves SSH para o Config Sync usar para autenticação com seu repositório Git. Em seguida, instale os recursos do Anthos Config Management, ConfigManagementFeatureSpec e ConfigManagementBinding, no cluster.

Também é possível usar kubectl para atualizar ou fazer upgrade de uma instalação atual do Anthos Config Management.

Configurar chaves SSH

Um par de chaves SSH consiste em dois arquivos, uma chave pública e uma chave privada. A chave pública normalmente tem uma extensão .pub.

  1. Crie um par de chaves SSH para permitir que o Config Sync faça a autenticação no seu repositório Git. É possível usar um único par de chaves para todos os clusters ou um par de chaves por cluster, dependendo dos seus requisitos de segurança e conformidade.

    O comando a seguir cria uma chave RSA de 4.096 bits. Valores inferiores não são recomendados:

    ssh-keygen -t rsa -b 4096 \
      -C GIT_REPOSITORY_USERNAME \
      -N '' \
      -f /path/to/KEYPAIR_FILENAME
    

    Substitua:

    • GIT_REPOSITORY_USERNAME: o nome de usuário que você quer que o Config Sync use para se autenticar no repositório.
    • /path/to/KEYPAIR_FILENAME: um caminho para gerar o par de chaves.
  2. Configure o repositório para reconhecer a chave pública recém-criada. Consulte a documentação do provedor de hospedagem Git.

  3. Adicione a chave privada a um novo objeto Secret no cluster de usuário:

    kubectl create ns config-management-system --kubeconfig=USER_CLUSTER_KUBECONFIG && \
    kubectl create secret generic git-creds --kubeconfig=USER_CLUSTER_KUBECONFIG \
     --namespace=config-management-system \
     --from-file=ssh=/path/to/KEYPAIR_PRIVATE_KEY_FILENAME
    

    Substitua:

    • USER_CLUSTER_KUBECONFIG: o arquivo de configuração do cluster de usuário. Você pode encontrá-lo no Centro de gerenciamento.
    • /path/to/KEYPAIR_PRIVATE_KEY_FILENAME: o nome da chave privada (o arquivo sem o sufixo .pub).
  4. Exclua a chave privada do disco local ou a proteja.

Configurar ConfigManagementFeatureSpec e ConfigManagementBinding

Em seguida, crie um recurso ConfigManagementFeatureSpec no cluster:

kubectl apply -f CONFIG_MANAGEMENT_YAML --kubeconfig=ADMIN_OIDC_KUBECONFIG

Substitua:

apiVersion: managementcenter.anthos.cloud.google.com/v1
kind: ConfigManagementFeatureSpec
metadata:
  name: config-management-spec-sample
  namespace: anthos-management-center
spec:
  version: "1.12.0"
  git:
    syncRepo: "git@GIT_HOST_ADDRESS:REPO_NAME.git"
    policyDir: "."
    secretType: "ssh"
    syncBranch: "master"
    syncRev: "HEAD"
    syncWait: 15
  policyController:
    enabled: true
---
apiVersion: managementcenter.anthos.cloud.google.com/v1
kind: ConfigManagementBinding
metadata:
  name: config-management-binding-sample
  namespace: anthos-management-center
spec:
  configs:
  - configRef:
      name: config-management-spec-sample
      namespace: anthos-management-center
    placement:
      clusterIDs:
      - "CLUSTER-NAME"

Substitua:

  • GIT_HOST_ADDRESS: o endereço do host do repositório Git.
  • REPO_NAME: o nome do repositório Git.
  • CLUSTER-NAME: o nome do cluster.

Atualizar e fazer upgrade

É possível atualizar ou fazer upgrade do Anthos Config Management modificando o ConfigManagementFeatureSpec correspondente.

Por exemplo, para ativar o recurso Repositório não estruturado, atualize o ConfigManagementFeatureSpec:

apiVersion: managementcenter.anthos.cloud.google.com/v1
kind: ConfigManagementFeatureSpec
metadata:
  name: config-management-spec-sample
  namespace: anthos-management-center
spec:
  version: "1.12.0"
  sourceFormat: "unstructured"
  git:
    syncRepo: "git@<YOUR_GIT_HOST_ADDRESS>:<YOUR_UNSTRUCTURED_REPO>.git"
    policyDir: "."
    secretType: "ssh"
    syncBranch: "master"
    syncRev: "HEAD"
    syncWait: 15
  policyController:
    enabled: true

Visualizar o status do Anthos Config Management

É possível visualizar o status do Anthos Config Management consultando o recurso ConfigManagementBinding.

kubectl get ConfigManagementBinding -o \
jsonpath="{range .items[*].status.bindingItemStatuses[*]}{'\n'}{['clusterID', 'configRef', 'conditions']}" \
--namespace=anthos-management-center \
--kubeconfig=ADMIN_OIDC_KUBECONFIG \
| grep CLUSTER-NAME

Substitua:

Veja um exemplo de saída com o Anthos Config Management com status íntegro:

target-user-cluster-1 {"name":"new-spec-f75y8","namespace":"anthos-management-center"} [{"lastTransitionTime":"2021-05-27T18:06:27Z","message":"","observedGeneration":1,"reason":"Healthy","status":"True","type":"Ready"}]

A seguir