Installa Anthos Config Management

Questa pagina è rivolta agli amministratori della piattaforma.

Questa pagina descrive come installare Anthos Config Management.

Anthos Config Management ti consente di applicare criteri e configurazione ai tuoi cluster Anthos in modo dichiarativo eseguendo automaticamente il deployment della tua nuova configurazione da un repository Git centrale. Per scoprire di più, consulta la documentazione di Anthos Config Management.

Puoi installare Anthos Config Management mediante il Centro di gestione o utilizzando kubectl. Devi avere un repository Git prima di installare Anthos Config Management.

Installa dal Centro di gestione

Per configurare Anthos Config Management nel tuo cluster utente, vai alla scheda Config Management e fai clic su Configura. Segui quindi le istruzioni sulla pagina per completare la configurazione.

Puoi anche aggiornare o eseguire l'upgrade di un'installazione esistente di Anthos Config Management. Fai clic sul link nella colonna Versione per modificare la configurazione esistente.

Installazione con kubectl

L'installazione di Anthos Config Management con kubectl è un processo in due passaggi. Per prima cosa, imposta le chiavi SSH in modo che Config Sync possa utilizzarlo per l'autenticazione con il repository Git. Quindi installerai le risorse Anthos Config Management, ConfigManagementFeatureSpec e ConfigManagementBinding, nel cluster.

Puoi anche utilizzare kubectl per aggiornare o eseguire l'upgrade di un'installazione esistente di Anthos Config Management.

Configura le chiavi SSH

Una coppia di chiavi SSH è composta da due file: una chiave pubblica e una chiave privata. In genere la chiave pubblica ha un'estensione .pub.

  1. Crea una coppia di chiavi SSH per consentire l'autenticazione di Config Sync nel repository Git. Puoi utilizzare una singola coppia di chiavi per tutti i cluster o una coppia di chiavi per cluster, a seconda dei requisiti di sicurezza e conformità.

    Il comando seguente crea una chiave RSA a 4096 bit. Non è consigliabile utilizzare valori più bassi:

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

    Sostituisci quanto segue:

    • GIT_REPOSITORY_USERNAME: il nome utente che vuoi che Config Sync utilizzi per l'autenticazione nel repository.
    • /path/to/KEYPAIR_FILENAME: un percorso per generare la coppia di chiavi.
  2. Configura il tuo repository in modo che riconosca la chiave pubblica appena creata. Consulta la documentazione del tuo provider host Git.

  3. Aggiungi la chiave privata a un nuovo oggetto secret nel cluster utente:

    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
    

    Sostituisci quanto segue:

    • USER_CLUSTER_KUBECONFIG: il file di configurazione del cluster utente. Puoi trovarlo nel Centro di gestione.
    • /path/to/KEYPAIR_PRIVATE_KEY_FILENAME: il nome della chiave privata (il file senza il suffisso .pub).
  4. Elimina la chiave privata dal disco locale o proteggila in altro modo.

Configura ConfigManagementFeatureSpec e ConfigManagementBinding

Ora crea una risorsa ConfigManagementFeatureSpec nel tuo cluster:

kubectl apply -f CONFIG_MANAGEMENT_YAML --kubeconfig=ADMIN_OIDC_KUBECONFIG

Sostituisci quanto segue:

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"

Sostituisci quanto segue:

  • GIT_HOST_ADDRESS: l'indirizzo host del repository Git.
  • REPO_NAME: il nome del repository Git.
  • CLUSTER-NAME: il nome del cluster.

Aggiorna ed esegui l'upgrade

Puoi aggiornare o eseguire l'upgrade di Anthos Config Management modificando il valore ConfigManagementFeatureSpec corrispondente.

Ad esempio, per abilitare la funzionalità Repository non strutturato, aggiorna 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

Visualizza stato di Anthos Config Management

Puoi visualizzare lo stato di Anthos Config Management eseguendo una query sulla risorsa 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

Sostituisci quanto segue:

Ecco un esempio di output con Anthos Config Management in stato integro:

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"}]

Passaggi successivi