Skip to main content
Astra Control Center
Une version plus récente de ce produit est disponible.
La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Conditions préalables à l’ajout d’un cluster

Contributeurs

Assurez-vous que les conditions préalables sont remplies avant d’ajouter un cluster. Vous devez également effectuer les vérifications d’admissibilité pour vous assurer que votre grappe est prête à être ajoutée au Centre de contrôle Astra.

Ce dont vous avez besoin avant d’ajouter un cluster

  • Cluster OpenShift 4.6 ou 4.7 avec des classes de stockage Trident combinées à ONTAP 9.5 ou une version ultérieure.

    • Un ou plusieurs nœuds de travail avec au moins 1 Go de RAM disponible pour l’exécution des services de télémétrie.

      Remarque Si vous prévoyez d’ajouter un second cluster OpenShift 4.6 ou 4.7 comme ressource de calcul gérée, assurez-vous que la fonctionnalité Snapshot des volumes Trident est activée. Voir le Trident officiel "instructions" Pour activer et tester des snapshots de volume avec Trident.
  • Le superutilisateur et l’ID utilisateur définis sur le système ONTAP de sauvegarde pour sauvegarder et restaurer des applications avec le Centre de contrôle Astra (ACC). Exécutez les commandes suivantes dans la ligne de commande ONTAP :
    export policy rule modify -vserver svm0 -policyname default -ruleindex 1 -superuser sys
    export-policy rule modify -policyname default -ruleindex 1 -anon 65534 (il s’agit de la valeur par défaut)

Effectuer des vérifications d’éligibilité

Effectuez les contrôles d’éligibilité suivants pour vous assurer que votre grappe est prête à être ajoutée au Centre de contrôle Astra.

Étapes
  1. Vérifiez la version de Trident.

    kubectl get tridentversions -n trident

    Si Trident est présent, vous voyez des valeurs de sortie similaires à celles illustrées dans l’exemple suivant :

    NAME      VERSION
    trident   21.04.0

    Si Trident n’existe pas, vous voyez des résultats similaires à ce qui suit :

    error: the server doesn't have a resource type "tridentversions"
    Remarque Si Trident n’est pas installé ou si la version installée n’est pas la dernière, vous devez installer la dernière version de Trident avant de continuer. Voir la "Documentation Trident" pour obtenir des instructions.
  2. Vérifiez si les classes de stockage utilisent les pilotes Trident pris en charge. Le nom de provisionnement doit être csi.trident.netapp.io. Voir l’exemple suivant :

    kubectl get storageClass -A
    NAME                   PROVISIONER                    RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
    ontap-gold (default)   csi.trident.netapp.io          Delete          Immediate           true                   5d23h
    thin                   kubernetes.io/vsphere-volume   Delete          Immediate           false                  6d

Créez un kubeconfig. Rôle admin

Avant d’effectuer les étapes suivantes, assurez-vous que vous disposez des éléments suivants sur votre machine :

  • kubectl v1.19 ou version ultérieure installé

  • Un kubeconfig actif avec des droits d’administrateur de cluster pour le contexte actif

Étapes
  1. Créer un compte de service comme suit :

    1. Créez un fichier de compte de service appelé astracontrol-service-account.yaml.

      Ajustez le nom et l’espace de noms selon vos besoins. Si des modifications sont apportées ici, vous devez appliquer les mêmes modifications dans les étapes suivantes.

    astracontrol-service-account.yaml

    +

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: astracontrol-service-account
      namespace: default
    1. Appliquer le compte de service :

      kubectl apply -f astracontrol-service-account.yaml
  2. Accordez des autorisations d’administration du cluster comme suit :

    1. Créer un ClusterRoleBinding fichier appelé astracontrol-clusterrolebinding.yaml.

      Ajustez les noms et espaces de noms modifiés lors de la création du compte de service, le cas échéant.

    astracontrol-clusterrolebinding.yaml

    +

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: astracontrol-admin
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: cluster-admin
    subjects:
    - kind: ServiceAccount
      name: astracontrol-service-account
      namespace: default
    1. Appliquer la liaison de rôle de cluster :

      kubectl apply -f astracontrol-clusterrolebinding.yaml
  3. Indiquez les secrets du compte de service, en les remplaçant <context> avec le contexte approprié pour votre installation :

    kubectl get serviceaccount astracontrol-service-account --context <context> --namespace default -o json

    La fin de la sortie doit ressembler à ce qui suit :

    "secrets": [
    { "name": "astracontrol-service-account-dockercfg-vhz87"},
    { "name": "astracontrol-service-account-token-r59kr"}
    ]

    Les indices pour chaque élément dans secrets la matrice commence par 0. Dans l’exemple ci-dessus, l’index de astracontrol-service-account-dockercfg-vhz87 serait 0 et l’index pour astracontrol-service-account-token-r59kr serait 1. Dans votre résultat, notez l’index du nom du compte de service qui contient le mot "jeton".

  4. Générez le kubeconfig comme suit :

    1. Créer un create-kubeconfig.sh fichier. Si l’index de jeton que vous avez noté dans l’étape précédente n’était pas 0, remplacez la valeur pour TOKEN_INDEX au début du script suivant avec la valeur correcte.

      create-kubeconfig.sh
      # Update these to match your environment. Replace the value for TOKEN_INDEX from
      # the output in the previous step if it was not 0. If you didn't change anything
      # else above, don't change anything else here.
      
      SERVICE_ACCOUNT_NAME=astracontrol-service-account
      NAMESPACE=default
      NEW_CONTEXT=astracontrol
      KUBECONFIG_FILE='kubeconfig-sa'
      TOKEN_INDEX=0
      
      CONTEXT=$(kubectl config current-context)
      
      SECRET_NAME=$(kubectl get serviceaccount ${SERVICE_ACCOUNT_NAME} \
        --context ${CONTEXT} \
        --namespace ${NAMESPACE} \
        -o jsonpath='{.secrets[TOKEN_INDEX].name}')
      TOKEN_DATA=$(kubectl get secret ${SECRET_NAME} \
        --context ${CONTEXT} \
        --namespace ${NAMESPACE} \
        -o jsonpath='{.data.token}')
      
      TOKEN=$(echo ${TOKEN_DATA} | base64 -d)
      
      # Create dedicated kubeconfig
      # Create a full copy
      kubectl config view --raw > ${KUBECONFIG_FILE}.full.tmp
      
      # Switch working context to correct context
      kubectl --kubeconfig ${KUBECONFIG_FILE}.full.tmp config use-context ${CONTEXT}
      
      # Minify
      kubectl --kubeconfig ${KUBECONFIG_FILE}.full.tmp \
        config view --flatten --minify > ${KUBECONFIG_FILE}.tmp
      
      # Rename context
      kubectl config --kubeconfig ${KUBECONFIG_FILE}.tmp \
        rename-context ${CONTEXT} ${NEW_CONTEXT}
      
      # Create token user
      kubectl config --kubeconfig ${KUBECONFIG_FILE}.tmp \
        set-credentials ${CONTEXT}-${NAMESPACE}-token-user \
        --token ${TOKEN}
      
      # Set context to use token user
      kubectl config --kubeconfig ${KUBECONFIG_FILE}.tmp \
        set-context ${NEW_CONTEXT} --user ${CONTEXT}-${NAMESPACE}-token-user
      
      # Set context to correct namespace
      kubectl config --kubeconfig ${KUBECONFIG_FILE}.tmp \
        set-context ${NEW_CONTEXT} --namespace ${NAMESPACE}
      
      # Flatten/minify kubeconfig
      kubectl config --kubeconfig ${KUBECONFIG_FILE}.tmp \
        view --flatten --minify > ${KUBECONFIG_FILE}
      
      # Remove tmp
      rm ${KUBECONFIG_FILE}.full.tmp
      rm ${KUBECONFIG_FILE}.tmp
    2. Source des commandes à appliquer à votre cluster Kubernetes.

      source create-kubeconfig.sh
  5. (Facultatif) Renommer le kubeconfig en un nom significatif pour votre grappe. Protéger les informations d’identification du cluster.

    chmod 700 create-kubeconfig.sh
    mv kubeconfig-sa.txt YOUR_CLUSTER_NAME_kubeconfig

Et la suite ?

Maintenant que vous avez vérifié que les conditions préalables sont remplies, vous êtes prêt à "ajouter un cluster".

Trouvez plus d’informations