Skip to main content
NetApp Solutions
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

NetApp ONTAP가 포함된 AWS 기반 Red Hat OpenShift Service

기여자

개요

이 섹션에서는 Rosa에서 실행되는 애플리케이션의 영구 스토리지 계층으로 FSx for ONTAP을 활용하는 방법을 알아봅니다. Rosa 클러스터에 NetApp Trident CSI 드라이버 설치, FSx for ONTAP 파일 시스템 프로비저닝 및 샘플 상태 저장 애플리케이션 배포를 보여 줍니다. 또한 응용 프로그램 데이터를 백업하고 복원하기 위한 전략도 보여 줍니다. 이 통합 솔루션을 사용하면 AZ 간에 손쉽게 확장되는 공유 스토리지 프레임워크를 구축하여 Trident CSI 드라이버를 사용하여 데이터 크기 조정, 보호 및 복원 프로세스를 간소화할 수 있습니다.

필수 구성 요소

이 다이어그램은 여러 AZ에 배포된 ROSA 클러스터를 보여 줍니다. Rosa 클러스터의 마스터 노드, 인프라 노드는 Red Hat의 VPC에 있고, 작업자 노드는 고객 어카운트의 VPC에 있습니다. 동일한 VPC 내에 FSx for ONTAP 파일 시스템을 생성하고 ROSA 클러스터에 Trident 드라이버를 설치하여 이 VPC의 모든 서브넷이 파일 시스템에 연결할 수 있게 합니다.

로사 건축물

초기 설정

  • 1. NetApp ONTAP용 FSx 프로비저닝**

ROSA 클러스터와 동일한 VPC에서 다중 AZ FSx for NetApp ONTAP를 생성합니다. 이 작업은 여러 가지 방법으로 수행할 수 있습니다. CloudFormation Stack을 사용하여 FSxN을 생성하는 방법에 대한 세부 정보를 제공합니다

  • a. GitHub 리포지토리를 복제합니다**

$ git clone https://github.com/aws-samples/rosa-fsx-netapp-ontap.git
  • b. CloudFormation Stack을 실행합니다. **매개 변수 값을 사용자 고유의 값으로 바꾸어 아래 명령을 실행합니다.

$ 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

장소: region-name: ROSA 클러스터가 배포된 지역과 동일 subnet1_ID: FSxN subnet2_ID: FSxN VPC_ID용 대기 서브넷의 id: ROSA 클러스터가 배포된 VPC의 id, routable1_ID: CIDR ONTAP에 대한 라우팅 테이블의 ID: CIDR에 대한 액세스 허용 범위 설정 0.0.0.0/0 또는 적절한 CIDR을 사용하여 모든 트래픽이 FSx for ONTAP의 특정 포트에 액세스하도록 허용할 수 있습니다. 관리자 암호 정의: FSxN에 로그인하기 위한 암호 SVM 암호 정의: 생성할 SVM에 로그인하기 위한 암호 정의

아래와 같이 Amazon FSx 콘솔을 사용하여 파일 시스템 및 SVM(스토리지 가상 머신)이 생성되었는지 확인합니다.

FSxN이 생성되었습니다

  • 2. Rosa 클러스터용 Trident CSI 드라이버를 설치 및 구성합니다**

  • a. Trident Helm 리포지토리를 추가합니다**

$ helm repo add netapp-trident https://netapp.github.io/trident-helm-chart
  • b. Helm**을 사용하여 Trident를 설치합니다

$ helm install trident netapp-trident/trident-operator --version 100.2406.0 --create-namespace --namespace trident
참고 설치하는 버전에 따라 표시된 명령에서 version 매개 변수를 변경해야 합니다. 올바른 버전 번호는 를 "문서화"참조하십시오. Trident를 설치하는 추가 방법은 Trident를 "문서화"참조하십시오.

C. 모든 Trident Pod가 실행 중인지 확인합니다

Trident Pod가 실행되는 중입니다

  • 3. Trident CSI 백엔드에서 FSx for ONTAP(ONTAP NAS)** 를 사용하도록 구성합니다

Trident 백 엔드 구성은 Trident에 스토리지 시스템과 통신하는 방법을 알려줍니다(이 경우에는 FSx for ONTAP). 백엔드를 생성하기 위해 클러스터 관리 및 NFS 데이터 인터페이스와 함께 연결할 스토리지 가상 시스템의 자격 증명을 제공합니다. 을 사용하여 "ONTAP - NAS 드라이버"FSx 파일 시스템에서 스토리지 볼륨을 프로비저닝합니다.

  • a. 먼저 다음 YAML** 을 사용하여 SVM 자격 증명에 대한 암호를 만듭니다

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>
참고 아래와 같이 AWS Secrets Manager에서 FSxN용으로 생성된 SVM 암호를 검색할 수도 있습니다.

AWS 비밀 관리자

암호를 검색합니다

  • b. 다음 명령을 사용하여 ROSA 클러스터에 SVM 자격 증명에 대한 암호를 추가합니다**

$ oc apply -f svm_secret.yaml

다음 명령을 사용하여 Trident 네임스페이스에 암호가 추가되었는지 확인할 수 있습니다

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

암호가 적용되었습니다

  • C. 그런 다음 백엔드 객체를 생성하고, 복제된 Git 리포지토리의 FSX 디렉토리로 이동합니다. Backend-ONTAP-nas.yaml 파일을 엽니다. 다음 항목을 관리 DNS 이름 dataLIF 로, Amazon FSx SVM의 NFS DNS 이름으로, svm** 을 SVM 이름으로 바꿉니다. 다음 명령을 사용하여 백엔드 객체를 생성합니다.

다음 명령을 사용하여 백엔드 객체를 생성합니다.

$ oc apply -f backend-ontap-nas.yaml
참고 아래 스크린샷에 표시된 것처럼 Amazon FSx 콘솔에서 관리 DNS 이름, NFS DNS 이름 및 SVM 이름을 확인할 수 있습니다

리프스를 가져오세요

  • d. 이제 다음 명령을 실행하여 백엔드 객체가 생성되었고 Phase가 Bound로 표시되고 Status가 Success** 인지 확인합니다

백엔드를 생성합니다

  • 4. 스토리지 클래스 생성** 이제 Trident 백엔드가 구성되었으므로 백엔드를 사용할 Kubernetes 스토리지 클래스를 생성할 수 있습니다. 스토리지 클래스는 클러스터에서 사용할 수 있는 리소스 개체입니다. 애플리케이션에 대해 요청할 수 있는 스토리지 유형을 설명하고 분류합니다.

  • a. FSX 폴더에서 storage-class-csi-nas.yaml 파일을 검토합니다.**

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. Rosa 클러스터에서 스토리지 클래스를 생성하고 Trident-CSI 스토리지 클래스가 생성되었는지 확인합니다.**

백엔드를 생성합니다

Trident CSI 드라이버 설치 및 FSx for ONTAP 파일 시스템에 대한 연결이 완료되었습니다. 이제 FSx for ONTAP의 파일 볼륨을 사용하여 ROSA에 샘플 PostgreSQL 상태 저장 애플리케이션을 배포할 수 있습니다.

  • C. Trident-CSI 스토리지 클래스를 사용하여 생성된 PVC 및 PVS가 없는지 확인합니다.**

Trident를 사용하는 PVC가 없습니다

  • d. 응용 프로그램이 Trident CSI를 사용하여 PV를 생성할 수 있는지 확인합니다.**

FSX** 폴더에 제공된 PVC-Trident.yaml 파일을 사용하여 PVC를 생성합니다.

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["Trident를 사용하여 테스트 PVC를 생성합니다"]
  • 5. 샘플 PostgreSQL 상태 저장 응용 프로그램을 배포합니다**

  • a. helm을 사용하여 PostgreSQL**를 설치합니다

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

PostgreSQL을 설치합니다

  • b. 응용 프로그램 포드가 실행 중이고 응용 프로그램에 대해 PVC 및 PV가 생성되었는지 확인합니다.**

PostgreSQL Pod

PostgreSQL PVC

PostgreSQL PV입니다

  • C. PostgreSQL 클라이언트 배포**

다음 명령을 사용하여 설치된 PostgreSQL 서버의 암호를 가져옵니다.

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

다음 명령을 사용하여 PostgreSQL 클라이언트를 실행하고 암호를 사용하여 서버에 연결합니다

$ 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

PostgreSQL 클라이언트

  • d. 데이터베이스 및 테이블 만들기 테이블에 대한 스키마를 만들고 테이블에 두 개의 데이터 행을 삽입합니다.**

PostgreSQL 테이블, 스키마, 행

PostgreSQL 행1

PostgreSQL 행2