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

Requisitos de cluster Kubernetes para NetApp Disaster Recovery

Colaboradores netapp-ahibbard

Antes de configurar NetApp Disaster Recovery para clusters Kubernetes, você deve preparar cada cluster Kubernetes. Normalmente, a proteção se aplica a um cluster de origem e a um cluster de destino separados, o que significa que esses procedimentos precisam ser aplicados a cada cluster do par.

Pré-requisitos

Antes de configurar os requisitos do cluster Kubernetes, certifique-se de ter configurado seu cluster Kubernetes e os clusters ONTAP.

A recuperação de desastres oferece suporte a "qualquer versão do Kubernetes atualmente suportada pelo Trident Protect".

Clusters Kubernetes

Para cada cluster Kubernetes, assegure-se de que:

  • Você tem acesso de administrador kubectl a cada cluster Kubernetes.

  • O Helm 3 está disponível onde você executa os comandos de instalação

Requisitos do ONTAP

Para cada cluster ONTAP, certifique-se de ter configurado os seguintes recursos:

  • LIF de gerenciamento - usado pelo Trident para acesso à API de gerenciamento

  • LIF de dados (NFS) - usado para tráfego NFS para volumes

  • Nome da SVM - a storage VM que hospeda os volumes

  • Credenciais - A conta que o Trident usará (geralmente, admin ou uma conta com escopo SVM)

  • Os nós de trabalho devem ser capazes de alcançar as LIFs de gerenciamento e de dados do ONTAP.

  • Se você usar autoExportPolicy com restrições CIDR, inclua as sub-redes dos seus nós.

Instalar NetApp Trident CSI

Se você já instalou Trident, verifique a instalação com o comando
kubectl get pods -n trident. Se a instalação for bem-sucedida, você verá o Trident controller, os pods do nó (DaemonSet) e o estado do operador será Running state após alguns minutos.

Configurar o backend ONTAP e Trident StorageClass

Criar um segredo do Kubernetes

Crie um segredo do Kubernetes no namespace:

+

kubectl create secret generic trident-ontap-secret -n <namespace> \
  --from-literal=username=<adminOrOtherUsername> \
  --from-literal=password='<YOUR_ONTAP_PASSWORD>'

Para mais informações, consulte "Crie um segredo do Kubernetes no namespace".

Crie o TridentBackendConfig

Você pode

apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
  name: <name>
  namespace: <trident>
spec:
  version: 1
  backendName: <name>
  storageDriverName: <driverName>
  managementLIF: <MANAGEMENT_LIF_IP>
  dataLIF: <DATA_LIF_IP>
  svm: <SVM_NAME>
  autoExportPolicy: true
  autoExportCIDRs:
    - 0.0.0.0/0
  credentials:
    name: trident-ontap-secret

Você pode verificar a configuração com o comando kubectl get TridentBackendConfig -n trident. Se a configuração for bem-sucedida, a phase saída deverá exibir Bound e o status status deverá exibir Success. Se o status for Failed, revise as etapas para "Saiba mais detalhes" então resolva quaisquer problemas, como credenciais incorretas ou problemas de conectividade de rede.

Configurar a classe de armazenamento

"Crie o objeto da classe de armazenamento". Utilize o provisionador csi.trident.netapp.io. Por exemplo:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: <name>
provisioner: csi.trident.netapp.io
parameters:
  backendType: "<type>"
  storagePools: "<pool>:.*"
reclaimPolicy: Delete
volumeBindingMode: Immediate
allowVolumeExpansion: true

Opcionalmente, você pode marcar uma classe de armazenamento como padrão do cluster. Só é possível designar um padrão por cluster.

kubectl patch storageclass ontap-backend \
  -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

Os PVCs de aplicação que Trident Protect replica devem usar o armazenamento provisionado pelo Trident (este StorageClass ou outro que você definir com os storagePools seletores corretos).

Para que Trident Protect replique os dados do seu aplicativo, os aplicativos devem usar storage proveniente de volumes ONTAP gerenciados pelo Trident. Você pode usar esta storage class ou outra, mas ela deve ser configurada para usar o backend ONTAP por meio do Trident.

Configurar definições de recursos personalizados (CRD) de snapshot de grupo de volume

"Instale o CRD de snapshot e o controlador de snapshot.". Essas instalações são necessárias para snapshots de volume no Trident Protect.

Verifique as definições de recursos personalizados com o comando:

kubectl get crd volumesnapshots.snapshot.storage.k8s.io
kubectl get crd volumesnapshotcontents.snapshot.storage.k8s.io
kubectl get crd volumesnapshotclasses.snapshot.storage.k8s.io

Configurar snapshots de grupo de volume

kubectl patch volumesnapshotclasses.snapshot.storage.k8s.io trident-snapshotclass \
  -p '{"metadata": {"annotations":{"snapshot.storage.kubernetes.io/is-default-class":"true"}}}' \
  --type=merge

Opcionalmente, você pode designar a classe de snapshot de volume como a classe padrão. Use deletionPolicy: Retain se precisar que objetos de snapshot órfãos do Kubernetes deixem snapshots no ONTAP.

Resumo da verificação

Verificar Comando Resultado esperado

Trident está em execução

kubectl get pods -n trident

Trident está funcionando corretamente

O backend está saudável

kubectl get TridentBackendConfig -n trident

Vinculado/sucesso

O armazenamento está exposto

kubectl get storageclass

A saída inclui sua classe Trident

APIs do Snapshot

kubectl get volumesnapshotclass

Existem CRDs; lista o driver Trident

Após verificar o status de todos os recursos, implante ou "migrar" suas cargas de trabalho usando seu Trident StorageClass. Quando você "Adicionar clusters Kubernetes a um site", o Disaster Recovery fornece instruções para instalar o Trident Protect em um cluster e registrá-lo em seu ambiente do Disaster Recovery.

Consulte as instruções para instalar Trident Protect.
  1. Crie um namespace Trident Protect:

    kubectl create namespace trident-protect

  2. Crie um segredo do Kubernetes usando o client ID e o client secret para criar as credenciais de autenticação do OCCM.

    kubectl create secret generic occmauthcreds --namespace=trident-protect --from-literal=client_id=<clientID> --from-literal=<clientSecret>

  3. Adicione ou atualize o repositório Helm:

    helm repo add --force-update netapp-trident-protect https://netapp.github.io/trident-protect-helm-chart

  4. Instale ou atualize Trident Protect e Trident Protect Connector:
    helm upgrade --install trident-protect netapp-trident-protect/trident-protect-console \
    --version 100.2605.0-console --namespace trident-protect --set clusterName=<clusterName> --set trident-protect.cbs.accountID=<accountID> --set trident-protect.cbs.agentID=<agentID> --set trident-protect.cbs.proxySecretName=occmauthcreds --set trident-protect.cbs.proxyHostIP=<IPaddress>