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 cluster que executa o OpenShift 4,6 ou 4,7, que tem o Trident StorageClasses apoiado pelo ONTAP 9.5 ou posterior.

    • 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ê planeja adicionar um segundo cluster do OpenShift 4,6 ou 4,7 como um recurso de computação gerenciado, verifique se o recurso Snapshot de volume do Trident está ativado. Consulte o Trident oficial "instruções" para ativar e testar instantâneos de volume com o Trident.
  • 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 (ACC). Execute os seguintes comandos na linha de comando ONTAP:
    export policy rule modify -vserver svm0 -policyname default -ruleindex 1 -superuser sys
    export-policy rule modify -policyname default -ruleindex 1 -anon 65534 (Este é o valor padrão)

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

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

  4. Gere o kubeconfigo da seguinte forma:

    1. Crie um create-kubeconfig.sh arquivo. Se o índice de token que você observou na etapa anterior não for 0, substitua o valor TOKEN_INDEX no início do script a seguir pelo valor correto.

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

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