Skip to main content
Uma versão mais recente deste produto está disponível.
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Pré-requisitos para adicionar um cluster

Colaboradores

Você deve garantir que as condições de pré-requisito sejam atendidas antes de adicionar um cluster. Você também deve executar as verificações de qualificação para garantir que seu cluster esteja pronto para ser adicionado ao Astra Control Center.

O que você precisará antes de adicionar um cluster

  • Um dos seguintes tipos de clusters:

    • Clusters executando OpenShift 4,6.8, 4,7, 4,8 ou 4,9

    • Clusters executando Rancher 2,5.8, 2,5.9, ou 2,6 com RKE1

    • Clusters que executam o Kubernetes 1,20 a 1,23

    • Clusters executando o VMware Tanzu Kubernetes Grid 1,4

    • Clusters executando o VMware Tanzu Kubernetes Grid Integrated Edition 1.12.2

      Verifique se os clusters têm um ou mais nós de trabalho com pelo menos 1GB GB de RAM disponíveis para executar serviços de telemetria.

    Observação Se você pretende adicionar um segundo cluster do OpenShift 4,6, 4,7 ou 4,8 como um recurso de computação gerenciado, certifique-se de que o recurso Snapshot de volume do Astra Trident esteja ativado. Consulte o Astra Trident oficial "instruções"  para habilitar e testar snapshots de volume com o Astra Trident.
  • StorageClasses Astra Trident configurados com a "back-end de storage compatível" (necessários para qualquer tipo de cluster)

  • O superusuário e ID de usuário definidos no sistema ONTAP de backup para fazer backup e restaurar aplicativos com o Centro de Controle Astra. Execute o seguinte comando na linha de comando ONTAP:
    export-policy rule modify -vserver <storage virtual machine name> -policyname <policy name> -ruleindex 1 -superuser sysm --anon 65534

  • Um objeto Astra Trident volumesnapshotclass definido por um administrador. Consulte o Astra Trident "instruções" para habilitar e testar snapshots de volume com o Astra Trident.

  • Certifique-se de que você tenha apenas uma única classe de storage padrão definida para o cluster do Kubernetes.

Execute verificações de qualificação

Execute as seguintes verificações de qualificação para garantir que o cluster esteja pronto para ser adicionado ao Astra Control Center.

Passos
  1. Verifique a versão do Trident.

    kubectl get tridentversions -n trident

    Se o Trident existir, você verá uma saída semelhante à seguinte:

    NAME      VERSION
    trident   21.04.0

    Se o Trident não existir, você verá uma saída semelhante à seguinte:

    error: the server doesn't have a resource type "tridentversions"
    Observação Se o Trident não estiver instalado ou a versão instalada não for a mais recente, você precisará instalar a versão mais recente do Trident antes de continuar. Consulte "Documentação do Trident" para obter instruções.
  2. Verifique se as classes de armazenamento estão usando os drivers Trident suportados. O nome do provisionador deve ser csi.trident.netapp.io. Veja o exemplo a seguir:

    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

Crie uma função admin kubeconfig

Certifique-se de que tem o seguinte na sua máquina antes de executar os passos:

  • kubectl v1,19 ou posterior instalado

  • Um kubeconfig ativo com direitos de administrador de cluster para o contexto ativo

Passos
  1. Crie uma conta de serviço da seguinte forma:

    1. Crie um arquivo de conta de serviço astracontrol-service-account.yamlchamado .

      Ajuste o nome e o namespace conforme necessário. Se as alterações forem feitas aqui, você deve aplicar as mesmas alterações nas etapas a seguir.

    astracontrol-service-account.yaml

    +

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: astracontrol-service-account
      namespace: default
    1. Aplique a conta de serviço:

      kubectl apply -f astracontrol-service-account.yaml
  2. (Opcional) se o cluster usar uma política de segurança de pod restritiva que não permita a criação de pod privilegiados ou permitir que processos nos contentores de pod sejam executados como usuário raiz, crie uma política de segurança de pod personalizada para o cluster que permita que o Astra Control crie e gerencie pods. Para obter instruções, "Crie uma política de segurança de pod personalizada"consulte .

  3. Conceda permissões de administrador do cluster da seguinte forma:

    1. Crie um ClusterRoleBinding arquivo chamado astracontrol-clusterrolebinding.yaml.

      Ajuste quaisquer nomes e namespaces modificados ao criar a conta de serviço conforme necessário.

    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. Aplicar a vinculação de funções do cluster:

      kubectl apply -f astracontrol-clusterrolebinding.yaml
  4. Liste os segredos da conta de serviço, substituindo <context> pelo contexto correto para sua instalação:

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

    O final da saída deve ser semelhante ao seguinte:

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

    Os índices para cada elemento no secrets array começam com 0. No exemplo acima, o índice para astracontrol-service-account-dockercfg-vhz87 seria 0 e o índice para astracontrol-service-account-token-r59kr seria 1. Em sua saída, anote o índice do nome da conta de serviço que tem a palavra "token" nele.

  5. Gere o kubeconfigo da seguinte forma:

    1. Crie um create-kubeconfig.sh arquivo. Substitua TOKEN_INDEX no início do script a seguir pelo valor correto.

      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. Forneça os comandos para aplicá-los ao cluster do Kubernetes.

      source create-kubeconfig.sh
  6. (Opcional) Renomear o kubeconfig para um nome significativo para o cluster. Proteja a credencial do cluster.

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

O que se segue?

Agora que você verificou que os pré-requisitos são atendidos, você está pronto para "adicione um cluster".

Encontre mais informações