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

  • Uno dei seguenti tipi di cluster:

    • Cluster che eseguono OpenShift 4.6.8, 4.7, 4.8 o 4.9

    • Cluster che eseguono Rancher 2.5.8, 2.5.9 o 2.6 con RKE1

    • Cluster che eseguono Kubernetes da 1.20 a 1.23

    • Cluster che eseguono VMware Tanzu Kubernetes Grid 1.4

    • Cluster che eseguono VMware Tanzu Kubernetes Grid Integrated Edition 1.12.2

      Assicurarsi che i cluster dispongano di uno o più nodi di lavoro con almeno 1 GB di RAM disponibile per l'esecuzione dei servizi di telemetria.

    Nota Se si intende aggiungere un secondo cluster OpenShift 4.6, 4.7 o 4.8 come risorsa di calcolo gestita, assicurarsi che la funzione Astra Trident Volume Snapshot sia attivata. Vedi l'Astra Trident ufficiale "istruzioni" Per attivare e testare le istantanee dei volumi con Astra Trident.
  • Astra Trident StorageClasses configurato con un "back-end di storage supportato" (richiesto per qualsiasi tipo di cluster)

  • Il superuser e l'ID utente impostati sul sistema ONTAP di backup per eseguire il backup e il ripristino delle applicazioni con Centro di controllo Astra. Eseguire il seguente comando nella riga di comando di ONTAP:
    export-policy rule modify -vserver <storage virtual machine name> -policyname <policy name> -ruleindex 1 -superuser sysm --anon 65534

  • Un tridente Astra volumesnapshotclass oggetto definito da un amministratore. Vedi Astra Trident "istruzioni" Per attivare e testare le istantanee dei volumi con Astra Trident.

  • Assicurarsi di avere definito solo una singola classe di storage predefinita per il cluster Kubernetes.

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 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

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. (Facoltativo) se il cluster utilizza una policy di sicurezza del pod restrittiva che non consente la creazione di pod privilegiati o consente l'esecuzione di processi all'interno dei container del pod come utente root, creare una policy di sicurezza del pod personalizzata per il cluster che consenta ad Astra Control di creare e gestire i pod. Per istruzioni, vedere "Creare una policy di sicurezza pod personalizzata".

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

  5. Generare il kubeconfig come segue:

    1. Creare un create-kubeconfig.sh file. Sostituire TOKEN_INDEX all'inizio del seguente script con il valore corretto.

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

      source create-kubeconfig.sh
  6. (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