Installez Anthos Config Management.

Cette page s'adresse aux administrateurs de plates-formes.

Cette page explique comment installer Anthos Config Management.

Anthos Config Management vous permet d'appliquer des règles et des configurations à vos clusters Anthos de manière déclarative en déployant automatiquement votre nouvelle configuration à partir d'un dépôt Git central. Pour en savoir plus, consultez la documentation Anthos Config Management.

Vous pouvez installer Anthos Config Management à l'aide du centre de gestion ou de kubectl. Vous devez disposer d'un dépôt Git avant d'installer Anthos Config Management.

Installer depuis le centre de gestion

Configurez Anthos Config Management sur votre cluster d'utilisateur en accédant à l'onglet Config Management, puis cliquez sur Configuration. Suivez les instructions sur la page pour terminer la configuration.

Vous pouvez également mettre à jour ou mettre à niveau une installation Anthos Config Management existante. Cliquez sur le lien situé sous la colonne Version pour modifier la configuration existante.

Installer avec kubectl

L'installation d'Anthos Config Management avec kubectl est un processus en deux étapes. Commencez par configurer des clés SSH que Config Sync doit utiliser pour s'authentifier auprès de votre dépôt Git. Ensuite, vous installez les ressources Anthos Config Management, ConfigManagementFeatureSpec et ConfigManagementBinding, dans le cluster.

Vous pouvez également utiliser kubectl pour mettre à jour ou mettre à niveau une installation Anthos Config Management existante.

Configurer des clés SSH

Une paire de clés SSH se compose de deux fichiers : une clé publique et une clé privée. La clé publique possède généralement une extension .pub.

  1. Créez une paire de clés SSH pour permettre à Config Sync de s'authentifier auprès de votre dépôt Git. Vous pouvez utiliser une seule paire de clés pour tous les clusters ou une paire de clés par cluster, en fonction de vos exigences en matière de sécurité et de conformité.

    La commande suivante crée une clé RSA de 4 096 bits. Les valeurs inférieures ne sont pas recommandées :

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

    Remplacez les éléments suivants :

    • GIT_REPOSITORY_USERNAME : nom d'utilisateur avec lequel vous souhaitez que Config Sync s'authentifie auprès du dépôt.
    • /path/to/KEYPAIR_FILENAME : chemin d'accès vers lequel générer la paire de clés.
  2. Configurez votre dépôt pour qu'il reconnaisse la clé publique que vous venez de créer. Reportez-vous à la documentation de votre fournisseur d'hébergement Git.

  3. Ajoutez la clé privée à un nouvel objet Secret dans le cluster d'utilisateur :

    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
    

    Remplacez les éléments suivants :

    • USER_CLUSTER_KUBECONFIG : fichier de configuration du cluster d'utilisateur. Vous pouvez l'obtenir auprès du centre de gestion.
    • /path/to/KEYPAIR_PRIVATE_KEY_FILENAME : nom de la clé privée (fichier sans suffixe .pub).
  4. Supprimez la clé privée du disque local ou protégez-la.

Configurer ConfigManagementFeatureSpec et ConfigManagementBinding

Ensuite, créez une ressource ConfigManagementFeatureSpec dans votre cluster :

kubectl apply -f CONFIG_MANAGEMENT_YAML --kubeconfig=ADMIN_OIDC_KUBECONFIG

Remplacez les éléments suivants :

apiVersion: managementcenter.anthos.cloud.google.com/v1
kind: ConfigManagementFeatureSpec
metadata:
  name: config-management-spec-sample
  namespace: anthos-management-center
spec:
  version: "1.8.2"
  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"

Remplacez les éléments suivants :

  • GIT_HOST_ADDRESS : adresse hôte du dépôt Git.
  • REPO_NAME : nom du dépôt Git.
  • CLUSTER-NAME : nom du cluster.

Mettre à jour et mettre à niveau

Vous pouvez mettre à jour ou mettre à niveau Anthos Config Management en modifiant le fichier ConfigManagementFeatureSpec correspondant.

Par exemple, pour activer la fonctionnalité Restructured Repo, mettez à jour le fichier ConfigManagementFeatureSpec :

apiVersion: managementcenter.anthos.cloud.google.com/v1
kind: ConfigManagementFeatureSpec
metadata:
  name: config-management-spec-sample
  namespace: anthos-management-center
spec:
  version: "1.8.2"
  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

Afficher l'état d'Anthos Config Management

Vous pouvez afficher l'état d'Anthos Config Management en interrogeant la ressource 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

Remplacez les éléments suivants :

Voici un exemple de résultat avec Anthos Config Management en état sain :

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

Étapes suivantes