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

Serviço OpenShift da Red Hat na AWS com o NetApp ONTAP

Colaboradores

Visão geral

Nesta seção, mostraremos como utilizar o FSX for ONTAP como uma camada de armazenamento persistente para aplicativos executados no ROSA. Ele mostrará a instalação do driver NetApp Trident CSI em um cluster ROSA, o provisionamento de um sistema de arquivos FSX for ONTAP e a implantação de um aplicativo de estado de amostra. Ele também mostrará estratégias para fazer backup e restaurar os dados do aplicativo. Com essa solução integrada, você pode estabelecer uma estrutura de armazenamento compartilhado que pode ser dimensionada facilmente entre AZs, simplificando os processos de dimensionamento, proteção e restauração de seus dados usando o driver CSI Trident.

Pré-requisitos

Este diagrama mostra o cluster ROSA implantado em vários AZs. Os nós principais do cluster ROSA, os nós de infraestrutura estão na VPC da Red Hat, enquanto os nós de trabalho estão em uma VPC na conta do cliente . Vamos criar um sistema de arquivos FSX for ONTAP dentro da mesma VPC e instalar o driver Trident no cluster ROSA, permitindo que todas as sub-redes desta VPC se conetem ao sistema de arquivos.

Arquitetura Rosa

Configuração inicial

1. Provisione o FSX para NetApp ONTAP

Crie um FSX multi-AZ para NetApp ONTAP na mesma VPC que o cluster ROSA. Existem várias maneiras de fazer isso. Os detalhes da criação da FSxN usando uma pilha do CloudFormation são fornecidos

A.Clone o repositório do GitHub

$ git clone https://github.com/aws-samples/rosa-fsx-netapp-ontap.git

B.execute o CloudFormation Stack execute o comando abaixo substituindo os valores de parâmetro por seus próprios valores:

$ cd rosa-fsx-netapp-ontap/fsx
$ aws cloudformation create-stack \
  --stack-name ROSA-FSXONTAP \
  --template-body file://./FSxONTAP.yaml \
  --region <region-name> \
  --parameters \
  ParameterKey=Subnet1ID,ParameterValue=[subnet1_ID] \
  ParameterKey=Subnet2ID,ParameterValue=[subnet2_ID] \
  ParameterKey=myVpc,ParameterValue=[VPC_ID] \
ParameterKey=FSxONTAPRouteTable,ParameterValue=[routetable1_ID,routetable2_ID] \
  ParameterKey=FileSystemName,ParameterValue=ROSA-myFSxONTAP \
  ParameterKey=ThroughputCapacity,ParameterValue=1024 \
  ParameterKey=FSxAllowedCIDR,ParameterValue=[your_allowed_CIDR] \
  ParameterKey=FsxAdminPassword,ParameterValue=[Define Admin password] \
  ParameterKey=SvmAdminPassword,ParameterValue=[Define SVM password] \
  --capabilities CAPABILITY_NAMED_IAM

Where : region-name: Mesmo que a região em que o cluster ROSA é implantado subnet1_ID : id da sub-rede preferida para FSxN subnet2_ID: id da sub-rede em espera para FSxN VPC_ID: ID da VPC onde o cluster ROSA é implantado routetable1_ID, routetable2_ID: ids das tabelas de rota associadas às sub-redes escolhidas acima do seu_allowed_CIDR: Regras de acesso ao intervalo de acesso ao CIDR para os grupos de acesso ao CIDR do ONTAP para os grupos de acesso ao CIDR. Você pode usar o 0,0.0.0/0 ou qualquer CIDR apropriado para permitir que todo o tráfego acesse as portas específicas do FSX for ONTAP. Definir senha de administrador: Uma senha para fazer login na FSxN Definir senha de SVM: Uma senha para fazer login no SVM que será criada.

Verifique se o sistema de arquivos e a máquina virtual de armazenamento (SVM) foram criados usando o console do Amazon FSX, mostrado abaixo:

FSxN criado

2.Instalar e configurar o driver Trident CSI para o cluster ROSA

A.Adicione o repositório Helm do Trident

$ helm repo add netapp-trident https://netapp.github.io/trident-helm-chart

B.Instalar o Trident usando o leme

$ helm install trident netapp-trident/trident-operator --version 100.2406.0 --create-namespace --namespace trident
Observação Dependendo da versão que você instalar, o parâmetro versão precisará ser alterado no comando mostrado. Consulte o "documentação" para obter o número de versão correto. Para obter métodos adicionais de instalação do Trident, consulte o Trident "documentação".

C.Verifique se todos os pods Trident estão no estado em execução

Pods do Trident em execução

3. Configure o back-end do Trident CSI para usar o FSX for ONTAP (ONTAP nas)

A configuração de back-end do Trident diz à Trident como se comunicar com o sistema de armazenamento (neste caso, o FSX for ONTAP). Para criar o back-end, forneceremos as credenciais da máquina virtual de storage à qual você se conetará, juntamente com o Gerenciamento de cluster e as interfaces de dados NFS. Usaremos o "ONTAP-nas driver" para provisionar volumes de armazenamento no sistema de arquivos FSX.

um Primeiro, crie um segredo para as credenciais do SVM usando o seguinte yaml

apiVersion: v1
kind: Secret
metadata:
  name: backend-fsx-ontap-nas-secret
  namespace: trident
type: Opaque
stringData:
  username: vsadmin
  password: <value provided for Define SVM password as a parameter to the Cloud Formation Stack>
Observação Você também pode recuperar a senha do SVM criada para o FSxN no AWS Secrets Manager, conforme mostrado abaixo.

AWS Secrets Manager

recuperar segredo

B.Next, adicione o segredo das credenciais SVM ao cluster ROSA usando o seguinte comando

$ oc apply -f svm_secret.yaml

Você pode verificar se o segredo foi adicionado no namespace Trident usando o seguinte comando

$ oc get secrets -n trident |grep backend-fsx-ontap-nas-secret

segredo aplicado

c.. Em seguida, crie o objeto backend para isso, vá para o diretório fsx do seu repositório Git clonado. Abra o arquivo backend-ONTAP-nas.yaml. Substitua o seguinte: ManagementLIF com o nome DNS de gerenciamento dataLIF com o nome DNS NFS do Amazon FSX SVM e svm com o nome SVM. Crie o objeto backend usando o seguinte comando.

Crie o objeto backend usando o seguinte comando.

$ oc apply -f backend-ontap-nas.yaml
Observação Você pode obter o nome DNS de gerenciamento, o nome DNS NFS e o nome SVM no Console do Amazon FSX, como mostrado na captura de tela abaixo

obter vida útil

d.. Agora, execute o seguinte comando para verificar se o objeto backend foi criado e Phase está mostrando Bound e Status é sucesso

crie backend

**4. Agora que o back-end do Trident está configurado, você pode criar uma classe de armazenamento do Kubernetes para usar o back-end. A classe de armazenamento é um objeto de recurso disponibilizado para o cluster. Ele descreve e classifica o tipo de storage que você pode solicitar para um aplicativo.

um Revise o arquivo storage-class-csi-nas.yaml na pasta fsx.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: trident-csi
provisioner: csi.trident.netapp.io
parameters:
  backendType: "ontap-nas"
  fsType: "ext4"
allowVolumeExpansion: True
reclaimPolicy: Retain

b.. Crie Classe de armazenamento no cluster ROSA e verifique se a classe de armazenamento Trident-csi foi criada.

crie backend

Isso completa a instalação do driver Trident CSI e sua conetividade ao sistema de arquivos FSX for ONTAP. Agora você pode implantar um aplicativo de estado PostgreSQL de amostra no ROSA usando volumes de arquivos no FSX for ONTAP.

c.. Verifique se não há PVCs e PVS criados usando a classe de armazenamento Trident-csi.

sem PVCs usando Trident

d.. Verifique se os aplicativos podem criar PV usando o Trident CSI.

Crie um PVC usando o arquivo pvc-Trident.yaml fornecido na pasta fsx.

pvc-trident.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: basic
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 10Gi
  storageClassName: trident-csi
 You can issue the following commands to create a pvc and verify that it has been created.
image:redhat_openshift_container_rosa_image11.png["Criar PVC de teste usando Trident"]

5. Implemente um aplicativo de estado PostgreSQL de exemplo

um Use o leme para instalar postgresql

$ helm install postgresql bitnami/postgresql -n postgresql --create-namespace

instale postgresql

b.. Verifique se o pod de aplicação está em execução e um PVC e um PV são criados para o aplicativo.

pods postgresql

postgresql pvc

postgresql pv

c.. Implante um cliente PostgreSQL

Use o seguinte comando para obter a senha para o servidor postgresql que foi instalado.

$ export POSTGRES_PASSWORD=$(kubectl get secret --namespace postgresql postgresql -o jsoata.postgres-password}" | base64 -d)

Use o seguinte comando para executar um cliente postgresql e conetar-se ao servidor usando a senha

$ kubectl run postgresql-client --rm --tty -i --restart='Never' --namespace postgresql --image docker.io/bitnami/postgresql:16.2.0-debian-11-r1 --env="PGPASSWORD=$POSTGRES_PASSWORD" \
> --command -- psql --host postgresql -U postgres -d postgres -p 5432

cliente postgresql

d.. Crie um banco de dados e uma tabela. Crie um esquema para a tabela e insira 2 linhas de dados na tabela.

postgresql tabela, esquema, linhas

postgresql row1

postgresql rows2