Skip to main content
Astra Control Center
È disponibile una versione più recente di questo prodotto.
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Prerequisiti per l’aggiunta di un cluster

Collaboratori

Prima di aggiungere un cluster, assicurarsi che le condizioni preliminari siano soddisfatte. È inoltre necessario eseguire i controlli di idoneità per assicurarsi che il cluster sia pronto per essere aggiunto ad Astra Control Center.

Cosa serve prima di aggiungere un cluster

  • Un cluster che esegue OpenShift 4.6 o 4.7, con Trident StorageClasses supportato da ONTAP 9.5 o versione successiva.

    • Uno o più nodi di lavoro con almeno 1 GB di RAM disponibile per l’esecuzione dei servizi di telemetria.

      Nota Se si prevede di aggiungere un secondo cluster OpenShift 4.6 o 4.7 come risorsa di calcolo gestita, assicurarsi che la funzione Trident Volume Snapshot sia attivata. Vedi il Trident ufficiale "istruzioni" Per attivare e testare le istantanee dei volumi con Trident.
  • Il superuser e l’ID utente impostati sul sistema ONTAP di backup per eseguire il backup e il ripristino delle applicazioni con il centro di controllo Astra (ACC). Eseguire i seguenti comandi nella riga di comando di ONTAP:
    export policy rule modify -vserver svm0 -policyname default -ruleindex 1 -superuser sys
    export-policy rule modify -policyname default -ruleindex 1 -anon 65534 (valore predefinito)

Eseguire i controlli di idoneità

Eseguire i seguenti controlli di idoneità per assicurarsi che il cluster sia pronto per essere aggiunto ad Astra Control Center.

Fasi
  1. Controllare la versione di Trident.

    kubectl get tridentversions -n trident

    Se Trident esiste, l’output è simile a quanto segue:

    NAME      VERSION
    trident   21.04.0

    Se Trident non esiste, viene visualizzato un output simile a quanto segue:

    error: the server doesn't have a resource type "tridentversions"
    Nota Se Trident non è installato o se la versione installata non è la più recente, è necessario installare la versione più recente di Trident prima di procedere. Vedere "Documentazione di Trident" per istruzioni.
  2. Controllare se le classi di storage utilizzano i driver Trident supportati. Il nome del provider deve essere csi.trident.netapp.io. Vedere il seguente esempio:

    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

Creare un kubeconfig con ruolo di amministratore

Prima di eseguire la procedura, assicurarsi di disporre dei seguenti elementi sul computer:

  • kubectl v1.19 o versione successiva installata

  • Un kubeconfig attivo con diritti di amministratore del cluster per il contesto attivo

Fasi
  1. Creare un account di servizio come segue:

    1. Creare un file di account del servizio denominato astracontrol-service-account.yaml.

      Regolare il nome e lo spazio dei nomi in base alle esigenze. Se le modifiche vengono apportate qui, è necessario applicare le stesse modifiche nei passaggi seguenti.

    astracontrol-service-account.yaml

    +

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: astracontrol-service-account
      namespace: default
    1. Applicare l’account del servizio:

      kubectl apply -f astracontrol-service-account.yaml
  2. Concedere le autorizzazioni di amministratore del cluster come segue:

    1. Creare un ClusterRoleBinding file chiamato astracontrol-clusterrolebinding.yaml.

      Modificare i nomi e gli spazi dei nomi modificati quando si crea l’account del servizio, in base alle necessità.

    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. Applicare l’associazione del ruolo del cluster:

      kubectl apply -f astracontrol-clusterrolebinding.yaml
  3. Elencare i segreti dell’account di servizio, sostituendo <context> con il contesto corretto per l’installazione:

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

    La fine dell’output dovrebbe essere simile a quanto segue:

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

    Gli indici di ciascun elemento in secrets l’array inizia con 0. Nell’esempio precedente, l’indice per astracontrol-service-account-dockercfg-vhz87 sarebbe 0 e l’indice per astracontrol-service-account-token-r59kr sarebbe 1. Nell’output, annotare l’indice del nome dell’account del servizio che contiene la parola "token".

  4. Generare il kubeconfig come segue:

    1. Creare un create-kubeconfig.sh file. Se l’indice del token annotato nel passaggio precedente non era 0, sostituire il valore per TOKEN_INDEX all’inizio del seguente script con il valore corretto.

      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. Eseguire la sorgente dei comandi per applicarli al cluster Kubernetes.

      source create-kubeconfig.sh
  5. (opzionale) rinominare il kubeconfig con un nome significativo per il cluster. Proteggi la tua credenziale del cluster.

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

Quali sono le prossime novità?

Ora che hai verificato che i prerequisiti sono stati soddisfatti, sei pronto "aggiungere un cluster".

Trova ulteriori informazioni