Skip to main content
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

  • Un des types de clusters suivants :

    • Clusters exécutant OpenShift 4.6.8, 4.7, 4.8 ou 4.9

    • Clusters exécutant Rancher 2.5.8, 2.5.9, ou 2.6 avec RKE1

    • Clusters qui exécutent Kubernetes 1.20 à 1.23

    • Clusters exécutant VMware Tanzu Kubernetes Grid 1.4

    • Clusters exécutant VMware Tanzu Kubernetes Grid Integrated Edition 1.12.2

      Assurez-vous que vos clusters disposent d’un ou plusieurs nœuds workers 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 deuxième cluster OpenShift 4.6, 4.7 ou 4.8 en tant que ressource de calcul gérée, assurez-vous que la fonctionnalité Snapshot de volume Astra Trident est activée. Découvrez l’Astra Trident officielle "instructions" Pour activer et tester des copies Snapshot de volume avec Astra Trident.
  • Les classes de stockage Astra Trident sont configurées avec un "système back-end pris en charge" (requis pour tout type de cluster)

  • 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. Exécutez la commande suivante dans la ligne de commande ONTAP :
    export-policy rule modify -vserver <storage virtual machine name> -policyname <policy name> -ruleindex 1 -superuser sysm --anon 65534

  • Découvrez Astra Trident volumesnapshotclass objet défini par un administrateur. Découvrez Astra Trident "instructions" Pour activer et tester des copies Snapshot de volume avec Astra Trident.

  • Assurez-vous de n’avoir qu’une seule classe de stockage par défaut définie pour votre cluster Kubernetes.

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 sc
    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. (Facultatif) si votre cluster utilise une politique de sécurité de pod restrictive qui ne permet pas la création de pod privilégié ou l’exécution des processus dans les conteneurs de pod en tant qu’utilisateur racine, créez une politique de sécurité de pod personnalisée pour le cluster qui permet à Astra Control de créer et de gérer des pods. Pour obtenir des instructions, reportez-vous à la section "Créez une stratégie de sécurité de pod personnalisée".

  3. 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
  4. 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".

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

    1. Créer un create-kubeconfig.sh fichier. Remplacement TOKEN_INDEX au début du script suivant avec la valeur correcte.

      create-kubeconfig.sh
      # Update these to match your environment.
      # Replace TOKEN_INDEX with the correct value
      # from the output in the previous step. 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'
      
      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
  6. (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