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

Asegúrese de que su clúster cumpla los requisitos descritos en "Requisitos del clúster de aplicaciones".

Nota Si tiene pensado añadir un segundo clúster OpenShift 4.6, 4.7 o 4.8 como un recurso informático gestionado, debe asegurarse de que la función de Snapshot de volumen de Astra Trident esté habilitada. Consulte la Astra Trident oficial "instrucciones" Para habilitar y probar Volume Snapshots con Astra Trident.
  • Clases de almacenamiento de Astra Trident configuradas con un "back-end de almacenamiento admitido" (necesario para cualquier tipo de clúster)

  • 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. Ejecute el siguiente comando en la línea de comandos de la ONTAP:
    export-policy rule modify -vserver <storage virtual machine name> -policyname <policy name> -ruleindex 1 -superuser sysm --anon 65534

  • Una Astra Trident volumesnapshotclass objeto definido por un administrador. Vea la Astra Trident "instrucciones" Para habilitar y probar Volume Snapshots con Astra Trident.

  • Compruebe que solo tiene una única clase de almacenamiento predeterminada definida para el clúster de Kubernetes.

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

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. (Opcional) Si el clúster utiliza una directiva de seguridad de POD restrictiva que no permite la creación de POD privilegiadas o permite que los procesos dentro de los contenedores Pod se ejecuten como usuario raíz, cree una directiva de seguridad de POD personalizada para el clúster que permita a Astra Control crear y administrar POD. Para ver instrucciones, consulte "Cree una directiva de seguridad de POD personalizada".

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

  5. Genere la kubeconfig de la siguiente manera:

    1. Cree un create-kubeconfig.sh archivo. Sustituya TOKEN_INDEX al principio de la secuencia de comandos siguiente con el valor correcto.

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

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