Skip to main content
Astra Control Center
Hay disponible una nueva versión de este producto.
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

Requisitos previos para añadir un clúster

Colaboradores

Debe asegurarse de que se cumplan las condiciones previas antes de añadir un clúster. También debe ejecutar las comprobaciones de elegibilidad para asegurarse de que su clúster esté listo para ser agregado a Astra Control Center.

Qué necesitará antes de añadir un clúster

  • Un clúster que ejecuta OpenShift 4.6 o 4.7, y que cuenta con clases de almacenamiento de Trident respaldadas por ONTAP 9.5 o una versión posterior.

    • Uno o varios nodos de trabajo con al menos 1 GB de RAM disponibles para ejecutar servicios de telemetría.

      Nota Si tiene pensado añadir un segundo clúster OpenShift 4.6 o 4.7 como un recurso de computación gestionado, debe asegurarse de que la función Snapshot de volumen de Trident esté habilitada. Consulte la información oficial de Trident "instrucciones" Para habilitar y probar Snapshots de volumen con Trident.
  • El superusuario y el ID de usuario establecidos en el sistema ONTAP de respaldo para realizar copias de seguridad y restaurar aplicaciones con Astra Control Center (ACC). Ejecute los siguientes comandos en la línea de comandos de la ONTAP:
    export policy rule modify -vserver svm0 -policyname default -ruleindex 1 -superuser sys
    export-policy rule modify -policyname default -ruleindex 1 -anon 65534 (este es el valor predeterminado)

Ejecutar las comprobaciones de elegibilidad

Ejecute las siguientes comprobaciones de elegibilidad para asegurarse de que su clúster esté listo para ser agregado a Astra Control Center.

Pasos
  1. Compruebe la versión de Trident.

    kubectl get tridentversions -n trident

    Si Trident existe, se muestra una salida similar a la siguiente:

    NAME      VERSION
    trident   21.04.0

    Si Trident no existe, se muestra un resultado similar al siguiente:

    error: the server doesn't have a resource type "tridentversions"
    Nota Si Trident no está instalado o la versión instalada no es la más reciente, debe instalar la versión más reciente de Trident antes de continuar. Consulte "Documentación de Trident" si desea obtener instrucciones.
  2. Compruebe si las clases de almacenamiento están usando los controladores de Trident compatibles. El nombre del aprovisionador debe ser csi.trident.netapp.io. Consulte el siguiente ejemplo:

    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

Cree una imagen de rol administrativo

Asegúrese de que dispone de lo siguiente en su máquina antes de realizar los pasos siguientes:

  • kubectl v1.19 o posterior instalado

  • Una imagen marcada activa con los derechos de administrador del clúster para el contexto activo

Pasos
  1. Cree una cuenta de servicio del siguiente modo:

    1. Cree un archivo de cuenta de servicio llamado astracontrol-service-account.yaml.

      Ajuste el nombre y el espacio de nombres según sea necesario. Si se realizan cambios aquí, debe aplicar los mismos cambios en los pasos siguientes.

    astracontrol-service-account.yaml

    +

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: astracontrol-service-account
      namespace: default
    1. Aplicar la cuenta de servicio:

      kubectl apply -f astracontrol-service-account.yaml
  2. Conceda permisos de administrador del clúster de la siguiente manera:

    1. Cree un ClusterRoleBinding archivo llamado astracontrol-clusterrolebinding.yaml.

      Ajuste los nombres y espacios de nombres modificados al crear la cuenta de servicio según sea necesario.

    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. Aplique el enlace de roles del clúster:

      kubectl apply -f astracontrol-clusterrolebinding.yaml
  3. Enumere los secretos de la cuenta de servicio, reemplazando <context> con el contexto correcto para su instalación:

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

    El final de la salida debe ser similar a lo siguiente:

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

    Los índices de cada elemento de la secrets la matriz comienza con 0. En el ejemplo anterior, el índice para astracontrol-service-account-dockercfg-vhz87 sería 0 y el índice para astracontrol-service-account-token-r59kr sería 1. En la salida, anote el índice del nombre de la cuenta de servicio que contiene la palabra "token".

  4. Genere la kubeconfig de la siguiente manera:

    1. Cree un create-kubeconfig.sh archivo. Si el índice de token que anotó en el paso anterior no era 0, reemplace el valor para TOKEN_INDEX al principio de la secuencia de comandos siguiente con el valor correcto.

      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. Origen de los comandos para aplicarlos al clúster de Kubernetes.

      source create-kubeconfig.sh
  5. (opcional) cambie el nombre de la kubeconfig por un nombre significativo para el clúster. Proteja las credenciales del clúster.

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

El futuro

Ahora que ha comprobado que se cumplen los requisitos previos, está listo "añadir un clúster".

Obtenga más información