VPC 클러스터에 OpenShift Data Foundation 배치

OpenShift Data Foundation은 Red Hat® OpenShift® on IBM Cloud® 클러스터에서 컨테이너화된 워크로드에 대한 지속적 스토리지를 관리하는 데 사용할 수 있는 고가용성 스토리지 솔루션입니다.

가상화 워크로드의 경우, OpenShift 가상화 서비스에는 로컬 NVME 스토리지로 사전 구성된 ODF가 포함되어 있으므로 수동 설정이 필요하지 않습니다. 가상화 서비스 시작하기를 참조하세요.

OperatorHub의 OpenShift Data Foundation 설치는 IBM Cloud 클러스터에서 지원되지 않습니다. ODF를 설치하려면 다음 단계를 완료하여 클러스터 추가 기능을 배치하십시오.

최소 필수 권한
Administrator 플랫폼 액세스 역할
IBM Cloud Kubernetes Service의 클러스터에 대한 Manager 서비스 액세스 역할.

ODF는 CoreOS 작업자를 위한 클러스터 버전 4.16.23_1546_openshift 및 RHEL 작업자를 위한 4.16.21_1544_openshift 부터 프라이빗 전용 VPC 클러스터에서 지원됩니다.

전제조건

  • 설치 를 클릭하거나 CLI를 업데이트합니다.
  • 세 개 이상의 작업자 노드가 있는 VPC 클러스터를 작성하십시오.
    • 고가용성을 위해 세 개의 구역에서 구역당 하나 이상의 작업자 노드가 있는 클러스터를 작성하십시오.
    • 각 작업자 노드에 최소 16CPU 및 64GB RAM이 있어야 합니다. 4.16 보다 이전의 클러스터 버전에서는 각 서브넷에 공용 게이트웨이가 연결되어 있는지 확인하십시오.
    • 참고: 16개의 CPU와 32GB RAM을 갖춘 3개의 워커 노드에 OpenShift Data Foundation을 배포할 수 있지만, ODF 포드만 실행되도록 워커 노드를 오염시켜야 합니다. 이 설정을 사용할 때 ODF 노드에서 추가 앱 워크로드 또는 시스템 팟 (Pod) 을 실행할 수 없습니다.

flexibleScaling 동작 이해

OpenShift Data Foundation 4.21, flexibleScaling 은 가용 영역이 3개 미만인 단일 영역 클러스터 및 배포에 대해 자동으로 활성화됩니다. 유연한 확장 기능을 통해 스토리지 클러스터는 3의 배수로만 확장해야 하는 대신, 보다 세분화된 단위로 확장할 수 있습니다.

입자 팽창
3개 단위로만 확장하는 대신, 단일 워커 노드나 하나 이상의 OSD를 추가하여 스토리지를 확장할 수 있습니다.
배포 방식
유연한 확장 기능은 일반적으로 장애 도메인이나 가용 영역이 3개 미만인 내부 연결 스토리지 배포 환경에 사용됩니다. 단일 구역 클러스터에서는 장애 도메인이 호스트로 설정되며, 지정된 numOfOsd 값이 직접 프로비저닝됩니다. 예를 들어, numOfOsd 을 1로 설정하면 OSD가 1개 생성됩니다.
정적 구성
유연한 확장 방식은 초기 배포 시에 결정되며, 이후에는 이를 활성화하거나 비활성화할 수 없습니다.

단일 영역 클러스터에 처음 배포하는 경우, 적절한 복원력을 보장하고 지원되는 구성 가이드라인에 맞게 조정하려면 최소 3개의 OSD를 지정하는 것이 좋습니다.

다중 영역 클러스터에서는 장애 도메인을 영역으로 설정하고 OSD를 3의 배수로 프로비저닝하여 영역 간에 데이터 복제 및 고가용성을 유지합니다. 예를 들어 numOfOsd 을 1로 설정하면 영역에 분산된 3개의 OSD가 생성됩니다.

선택 사항: 기본 연산자 비활성화

비공개 전용 클러스터: 비공개 전용 클러스터에서는 ODF가 제대로 작동하도록 하기 위해 다음 명령을 사용하여 openshift-marketplace 에서 기본 연산자를 수동으로 비활성화해야 합니다.

oc patch OperatorHub cluster --type json -p '[{"op": "add", "path": "/spec/disableAllDefaultSources", "value": true}]'

선택사항: IBM Cloud Object Storage 서비스 인스턴스 설정

ODF 배치에서 기본 백업 저장소로 사용할 수 있는 IBM Cloud Object Storage 인스턴스를 작성하려면 다음 단계를 완료하십시오. IBM Cloud Object Storage를 설정하지 않으려면 이 단계를 건너뛰고 추가 기능을 설치할 수 있습니다.

스토리지 클러스터에서 IBM Cloud Object Storage를 기본 백업 저장소로 설정하려는 경우 IBM Cloud Object Storage의 인스턴스를 작성하십시오. 그런 다음 Object Storage HMAC 인증 정보를 사용하는 HMAC 인증 정보 및 Kubernetes 시크릿 세트를 작성하십시오. 설치 중에 IBM Cloud Object Storage 인증 정보를 지정하지 않으면 스토리지 클러스터의 기본 백업 저장소가 클러스터에서 PV를 사용하여 작성됩니다. ODF를 배치한 후 추가 백업 저장소를 설정할 수 있지만 기본 백업 저장소를 변경할 수는 없습니다.

Red Hat OpenShift 클러스터에 액세스하십시오.

  1. 클러스터에서 openshift-storage 네임스페이스를 작성하십시오. 드라이버 팟(Pod)이 이 네임스페이스에 배치됩니다. 다음 YAML을 복사하여 로컬 시스템에 os-namespace.yaml로 저장하십시오.
    apiVersion: v1
    kind: Namespace
    metadata:
      labels:
        openshift.io/cluster-monitoring: "true"
      name: openshift-storage
    
  2. 저장한 YAML 파일을 사용하여 openshift-storage 네임스페이스를 작성하십시오.
    oc create -f os-namespace.yaml
    
  3. 네임스페이스가 작성되었는지 확인하십시오.
    oc get namespaces | grep storage
    
  4. IBM Cloud Object Storage 서비스 인스턴스를 작성하십시오.
    ibmcloud resource service-instance-create noobaa-store cloud-object-storage standard global
    
  5. HMAC 인증 정보를 작성하십시오. 인증 정보를 기록해 두십시오.
    ibmcloud resource service-key-create cos-cred-rw Writer --instance-name noobaa-store --parameters '{"HMAC": true}'
    
  6. Object Storage HMAC 인증 정보를 사용하는 ibm-cloud-cos-creds 네임스페이스의 Kubernetes 시크릿 openshift-storage를 작성하십시오. 명령을 실행할 때 Object Storage HMAC 액세스 키 ID 및 시크릿 액세스 키를 지정하십시오. 시크릿 이름이 ibm-cloud-cos-creds여야 합니다.
    oc -n 'openshift-storage' create secret generic 'ibm-cloud-cos-creds' --type=Opaque --from-literal=IBM_COS_ACCESS_KEY_ID=<access_key_id> --from-literal=IBM_COS_SECRET_ACCESS_KEY=<secret_access_key>
    
  7. 시크릿이 작성되었는지 확인하십시오.
    oc get secrets -A | grep cos
    

선택사항: Hyper Protect Crypto Services 또는 Key Protect 를 사용하여 암호화 설정

암호화를 설정하려면 Hyper Protect Crypto Services 또는 Key Protect의 인스턴스를 작성하십시오. 그런 다음 Hyper Protect Crypto Services 또는 Key Protect 인증 정보를 사용하는 루트 키 및 Kubernetes 시크릿을 작성하십시오.

IBM Cloud는 전용 키 관리 서비스를 Hyper Protect Crypto Services에서 Key Protect Dedicated로 변경하고 있습니다.

Hyper Protect Crypto Services 또는 Key Protect 에 대한 API키에는 다음과 같은 최소 필수 권한이 있어야 합니다.
Reader
Reader Plus
클러스터 전체 암호화 및 스토리지 클래스 암호화를 사용하는 경우 API키에 다음과 같은 필수 권한이 있어야 합니다.
Reader
Reader Plus
Writer
  1. Hyper Protect Crypto Services 또는 Key Protect 서비스 인스턴스를 작성하십시오.

  2. 루트 키를 작성하십시오.

  3. 인스턴스 및 루트 키를 작성한 후 Hyper Protect Crypto Services 또는 Key Protect 인스턴스 이름, 인스턴스 ID, 루트 키 ID및 공용 엔드포인트를 기록해 두십시오.

  4. Hyper Protect Crypto Services 및 Red Hat OpenShift on IBM Cloud 또는 Key Protect 및 Red Hat OpenShift on IBM Cloud에 대한 액세스를 허용하는 서비스 ID, API키액세스 정책 을 작성하십시오. 생성한 API를 기록해 두세요.

  5. 사설 클러스터: KMS 인스턴스에 대한 액세스를 허용하는 가상 사설 엔드포인트 게이트웨이를 작성하십시오. VPC의 각 서브넷에서 VPE로 하나 이상의 IP 주소를 바인드해야 합니다.

Red Hat OpenShift 클러스터에 액세스하십시오.

  1. 네임스페이스를 나열하여 openshift-storage 네임스페이스가 있는지 여부를 판별하십시오. openshift-storage 네임스페이스가 없는 경우 작성하십시오.
    oc get namespaces | grep openshift-storage
    
    1. 클러스터에서 openshift-storage 네임스페이스를 작성하십시오. 드라이버 팟(Pod)이 이 네임스페이스에 배치됩니다. 다음 YAML을 복사하여 로컬 시스템에 os-namespace.yaml로 저장하십시오.
        apiVersion: v1
        kind: Namespace
        metadata:
          labels:
            openshift.io/cluster-monitoring: "true"
          name: openshift-storage
        ```
    1. 저장한 YAML 파일을 사용하여 `openshift-storage` 네임스페이스를 작성하십시오.
    ```sh {: pre}
        oc create -f os-namespace.yaml
        ```
    1. 네임스페이스가 작성되었는지 확인하십시오.
    ```sh {: pre}
        oc get namespaces | grep storage
        ```
    
  2. base64로 작성한 서비스 ID의 API키 및 루트 키의 ID를 모두 인코딩하십시오.
    printf "ROOT-KEY-ID" | base64
    
    printf "SERVICE-ID-API-KEY" | base64
    
  3. openshift-storage 네임스페이스에서 Hyper Protect Crypto Services 자격 증명을 사용하는 ‘ Kubernetes ’ 시크릿을 생성합니다.
    1. 다음 시크릿을 ibm-hpcs-secret.yaml 라는 YAML 파일로 저장하십시오.
        apiVersion: v1
        data:
          IBM_KP_CUSTOMER_ROOT_KEY: AaAAAaZAAAAy11AAAyAAkaAaQtAAk0AAA2AzY5AjYaaa67aa # your base64 encoded root key ID
          IBM_KP_SERVICE_API_KEY: AAAaaajAAAAAncmAAaaaaAAAAdAAId1AtVjBJRU1aAAaAeTh1aEw=AaaaA # your base64 encoded API
        kind: Secret
        metadata:
          name: ibm-hpcs-secret
          namespace: openshift-storage
        type: Opaque
        ```
    1. 클러스터의 시크릿을 작성하십시오.
    ```sh {: pre}
        oc apply -f ibm-hpcs-secret.yaml
        ```
    
  4. 시크릿이 작성되었는지 확인하십시오.
    oc get secrets -A | grep ibm-hpcs-secret
    

콘솔에서 OpenShift Data Foundation 추가 기능 설치

클러스터에 ODF를 설치하려면 다음 단계를 완료하십시오.

애드온을 활성화하기 전에, 최신 버전 정보를 확인하려면 변경 내역을 살펴보십시오. 또한 매개변수 참조를 검토하여 설치 옵션을 이해하세요.

  1. 콘솔 에서 애드온을 설치할 클러스터를 선택하십시오.
  2. OpenShift Data Foundation 카드에서 설치를 클릭하십시오. ODF 설치 패널이 열립니다.
  3. ODF 설치 패널에서 ODF 배치에 사용하려는 구성 매개변수를 입력하십시오.
비용 청구 유형
에센셜 또는 고급을 청구 플랜으로 선택하세요. 청구 유형에 대한 자세한 정보는 청구 유형별 기능 지원 을 참조하십시오.
스토리지 클래스
사용하려는 스토리지 클래스를 입력하십시오.
  • 가상 머신을 사용하는 VPC 클러스터의 경우 원격 프로비저닝을 선택하여 Block Storage for VPC 을 사용하여 ODF용 볼륨을 동적으로 프로비저닝합니다.
  • Bare Metal Servers for VPC 워커 노드를 사용하는 VPC 클러스터의 경우 로컬 스토리지를 선택합니다. 워커 노드에서 사용 가능한 저장 장치를 자동으로 검색하여 ODF에서 사용하려면 로컬 디스크 검색을 선택합니다.
OSD 스토리지 클래스 이름
스토리지 볼륨을 프로비저닝하는 데 사용할 스토리지 클래스의 이름을 입력하십시오.
  • Bare Metal Servers for VPC 작업자 노드가 있는 VPC 클러스터의 경우 localblock 을 선택합니다.
  • 멀티존 클러스터의 경우 WaitForFirstConsumerVolumeBindingMode 와 함께 스토리지 클래스를 사용합니다.
  • 스토리지 클래스 목록은 스토리지 클래스 참조를 참조하세요.
OSD 포드 크기
프로비저닝할 볼륨의 크기를 입력하십시오. 512Gi 을 입력합니다.
작업자 노드
ODF를 배포할 워커 노드의 이름을 입력하십시오. 3개이상의 작업자 노드 이름을 입력해야 합니다. 노드 이름을 찾으려면 클러스터에서 oc get nodes 명령을 실행하세요. Node 이름은 쉼표로 구분하고 이름 사이에 공백을 두지 않아야 합니다. 예: 10.240.0.24,10.240.0.26,10.240.0.25. 모든 워커 노드에 ODF를 배포하려면 이 필드를 비워 두세요.
필요한 OSD 디스크 수
각 워커 노드에서 프로비저닝할 OSD 디스크(앱 스토리지)의 수를 입력합니다.
클러스터 암호화 사용
ODF 시스템 파드에서 사용하는 OSD 볼륨(클러스터 전체 암호화)을 암호화하려면 이 옵션을 선택합니다.
볼륨 암호화 사용
애플리케이션 볼륨(앱 저장소)에 대한 암호화를 사용하려면 이 옵션을 선택합니다.
  • 인스턴스 이름 필드에 Hyper Protect Crypto Services 또는 Key Protect 인스턴스의 고유 이름을 입력하십시오.
  • 인스턴스 유형 필드에 암호화 인스턴스의 유형을 입력하십시오.
  • 인스턴스 ID 필드에 Hyper Protect Crypto Services 또는 Key Protect 인스턴스 ID를 입력하십시오. 예: d11a1a43-aa0a-40a3-aaa9-5aaa63147aaa.
  • 시크릿 이름 필드에 Hyper Protect Crypto Services 또는 Key Protect 신임 정보를 사용하여 작성한 시크릿의 이름을 입력하십시오. 예: ibm-hpcs-secret.
  • 기본 URL 필드에 Hyper Protect Crypto Services 또는 Key Protect 인스턴스의 공개 엔드포인트를 입력합니다. 예: https://api.eu-gb.hs-crypto.cloud.ibm.com:8389.
  • 토큰 URL 칸에 https://iam.cloud.ibm.com/identity/token 를 입력합니다.
  1. 사용하려는 매개변수를 입력한 후 설치를 클릭하십시오.

  2. 추가 기능 배치가 완료될 때까지 몇 분 정도 기다리십시오. 배치가 완료되면 추가 기능 상태는 Normal - Addon Ready입니다.

  3. 설치를 확인하십시오. Red Hat OpenShift 클러스터에 액세스하십시오.

  4. 다음 명령을 실행하여 ODF 팟(pod)이 실행 중인지 검증하십시오.

    oc get pods -n openshift-storage
    
다음 단계
ODF를 사용하는 앱을 배치하십시오.

CLI에서 추가 기능 설치

ibmcloud oc cluster addon enable 명령을 사용하여 추가 기능을 설치할 수 있습니다.

  1. VPC 매개변수 참조 를 검토하십시오. 애드온을 활성화하면, 재정의하려는 각 매개변수에 대해 --param "key=value" 옵션을 지정하여 기본값을 재정의할 수 있습니다.

  2. Red Hat OpenShift 클러스터에 액세스하십시오.

  3. openshift-data-foundation 추가 기능 버전을 나열하십시오. 기본 버전을 기록하고 설치할 버전을 판별하십시오.

    ibmcloud ks cluster addon versions
    
  4. 애드온을 활성화하기 전에, 최신 버전 정보를 확인하려면 변경 내역을 살펴보십시오. 추가 기능은 n+1 클러스터 버전을 지원합니다. 예를 들어, OCP 4.9 또는 4.11 클러스터에 4.10.0 버전의 애드온을 배포할 수 있습니다. 기본값과 다른 클러스터 버전을 사용하는 경우, 애드온을 활성화할 때 --version 옵션을 지정해야 합니다.

  5. 추가 기능 옵션을 검토하십시오.

    ibmcloud oc cluster addon options --addon openshift-data-foundation --version 4.15.0
    

    최상의 성능을 위해, performance 로 지정된 ' resourceProfile ' 옵션을 포함하는 것이 좋습니다. 이 옵션은 배포 시 리소스의 가용성에 따라 향상된 성능 수준을 얻을 수 있도록 도와줍니다. resourceProfile 옵션에 대한 자세한 내용은 Red Hat OpenShift 의 ODF 문서에 있는 ‘성능 프로필’ 항목을 참조하십시오.

    버 4.15.0 의 추가 기능 옵션 예

    Add-on Options
    Option                            Default Value
    osdStorageClassName               ibmc-vpc-block-metro-10iops-tier
    ocsUpgrade                        false
    billingType                       advanced
    autoDiscoverDevices               false
    hpcsBaseUrl                       <Please provide the KMS Base (public) URL>
    taintNodes                        false
    enableNFS                         false
    resourceProfile                   performance
    useCephRBDAsDefaultStorageClass   false
    clusterEncryption                 false
    hpcsEncryption                    false
    hpcsSecretName                    <Please provide the KMS secret name>
    encryptionInTransit               false
    disableNoobaaLB                   false
    osdSize                           512Gi
    numOfOsd                          1
    ignoreNoobaa                      true
    addSingleReplicaPool              false
    prepareForDisasterRecovery        false
    workerPool                        -
    odfDeploy                         true
    osdDevicePaths                    <Please provide IDs of the disks to be used for OSD pods if using local disks or standard classic cluster>
    workerNodes                       all
    hpcsServiceName                   <Please provide the KMS Service instance name>
    hpcsInstanceId                    <Please provide the KMS Service instance ID>
    hpcsTokenUrl                      <Please provide the KMS token URL>
    
  6. openshift-data-foundation 추가 기능을 사용으로 설정하십시오. 기본 매개변수 중 어느 것을 재정의하려면, 재정의하려는 각 매개변수에 대해 --param "key=value" 옵션을 지정하십시오. 추가 기능을 사용으로 설정할 때 스토리지 클러스터를 작성하지 않으려는 경우 먼저 추가 기능을 사용하도록 설정한 후 CRD를 작성하여 나중에 스토리지 클러스터를 작성할 수 있습니다.

    추가 기능 버전 4.10 기본 스토리지 클러스터 설정, performance 리소스 프로필, Hyper Protect Crypto Services 암호화 활성화와 함께 배포하는 명령의 예.

    ibmcloud oc cluster addon enable openshift-data-foundation -c CLUSTER_NAME --version 4.15.0 --param "odfDeploy=true" --param "resourceProfile=performance" --param "hpcsTokenUrl=https://iam.cloud.ibm.com/identity/token" --param "hpcsEncryption=true" --param "hpcsBaseUrl=HPCS_INSTANCE_PUBLIC_ENDPOINT" --param "hpcsInstanceId=HPCS_INSTANCE_ID" --param "hpcsServiceName=HPCS_INSTANCE_NAME" --param "hpcsSecretName=HPCS_SECRET_NAME"
    

    ODF 추가 기능만 배치하기 위한 명령 예제입니다.

    ibmcloud oc cluster addon enable openshift-data-foundation -c CLUSTER_NAME --version VERSION --param "odfDeploy=false"
    

    기본 구성 매개변수로 ODF를 배치하고 스토리지 클러스터를 작성하기 위한 명령 예제

    ibmcloud oc cluster addon enable openshift-data-foundation -c CLUSTER_NAME --version VERSION
    

    osdSize 매개변수를 오버라이드하는 중에 ODF를 배치하고 스토리지 클러스터를 작성하기 위한 명령 예제입니다.

    ibmcloud oc cluster addon enable openshift-data-foundation -c CLUSTER_NAME --version VERSION --param "osdSize=500Gi"
    
  7. 추가 기능이 Ready 상태인지 확인하십시오.

    oc get storagecluster -n openshift-storage
    

    출력 예:

    NAME                 AGE   PHASE   EXTERNAL   CREATED AT             VERSION
    ocs-storagecluster   53m   Ready              2023-03-10T12:20:52Z   4.11.0
    
  8. ibm-ocs-operator-controller-manager-***** 팟(Pod)이 kube-system 네임스페이스에서 실행 중인지 확인하십시오.

    oc get pods -A | grep ibm-ocs-operator-controller-manager
    
  9. odfDeployfalse 로 설정된 추가 기능을 사용으로 설정한 경우 ODF 사용자 정의 자원 작성 단계를 수행하십시오.

Terraform에서 추가 기능 설치

  1. Terraform 프로바이더 파일을 생성합니다. Terraform 디렉토리에 파일을 저장하십시오. 자세한 정보는 Terraform IBM Cloud 제공자 문서를 참조하십시오.

    Terraform 제공자 파일의 예입니다.

    terraform {
    required_providers {
        ibm = {
        source = "IBM-Cloud/ibm"
        version = "1.53.0"
        }
    }
    }
    provider "ibm" {
    region = "us-south"
    ibmcloud_api_key = "<api-key>"
    }
    
  2. ODF 추가 기능에 대한 Terraform 구성 파일을 작성하십시오. Terraform 디렉토리에 파일을 저장하십시오.

    구성 파일의 예입니다.

    ibmcloud_api_key = "" # Enter your API Key
    cluster = "" # Enter the Cluster ID
    region = "us-south" # Enter the region
    # For add-on deployment
    odfVersion = "4.12.0"
    # For CRD Creation and Management
    autoDiscoverDevices = "false"
    billingType = "advanced"
    clusterEncryption = "false"
    hpcsBaseUrl = null
    hpcsEncryption = "false"
    hpcsInstanceId = null
    hpcsSecretName = null
    hpcsServiceName = null
    hpcsTokenUrl = null
    ignoreNoobaa = "false"
    numOfOsd = "1"
    ocsUpgrade = "false"
    osdDevicePaths = null
    osdSize = "250Gi"
    osdStorageClassName = "ibmc-vpc-block-metro-10iops-tier"
    workerNodes = null
    
  3. CLI에서 Terraform 디렉토리로 이동하십시오.

    cd <terraform_directory>
    
  4. 명령을 실행하여 Terraform 조치를 초기화하고 계획하십시오. 계획 출력을 검토하여 올바른 조치가 수행되었는지 확인하십시오.

    terraform init
    
    terraform plan
    
  5. Terraform 파일을 적용하여 클러스터를 작성하십시오. 그런 다음 IBM Cloud 콘솔로 이동하여 클러스터가 프로비저닝 중인지 확인하십시오.

    terraform apply
    

ODF 사용자 정의 리소스 작성

스토리지 볼륨에 대한 동적 프로비저닝을 사용하여 VPC 클러스터에서 ODF 스토리지 클러스터를 작성하려면 사용자 정의 리소스를 작성하여 스토리지 디바이스 세부사항을 지정할 수 있습니다.

IBM Cloud Object Storage 서비스 인스턴스를 기본 백업 저장소로 사용하려는 경우 서비스 인스턴스를 작성했고 클러스터에서 Kubernetes 시크릿을 작성했는지 확인하십시오. 클러스터에서 ODF CRD를 작성하는 경우, ODF가 시크릿 ibm-cloud-cos-creds를 찾아 Object Storage HMAC 인증 정보를 사용하는 기본 백업 저장소를 설정합니다.

  1. OcsCluster라는 사용자 정의 리소스 정의를 작성하십시오. 다음 사용자 정의 리소스 정의 파일 중 하나를 로컬 컴퓨터에 저장한 다음, 앞서 생성한 스토리지 클래스의 이름을 monStorageClassName osdStorageClassName 매개변수로 포함하도록 파일을 수정하십시오. OcsCluster 매개변수에 대한 자세한 정보는 매개변수 참조를 참조하십시오.

    4.8 클러스터의 모든 작업자 노드에 ODF를 설치하기 위한 사용자 정의 리소스 정의 예제입니다.

    apiVersion: ocs.ibm.io/v1
    kind: OcsCluster
    metadata:
      name: ocscluster-vpc # Kubernetes resource names can't contain capital letters or special characters. Enter a name for your resource that uses only lowercase letters, numbers, `-` or `.`
    spec:
      osdStorageClassName: <osdStorageClassName> # Specify an ODF storage class with a waitForFirstConsumer volume binding mode
      osdSize: <osdSize> # The OSD size is the total storage capacity of your OCS storage cluster. Use at least 250Gi OSDs for production workloads.
      numOfOsd: 1
      billingType: advanced
      ocsUpgrade: false
    

    4.8 클러스터의 지정된 작업자 노드에만 ODF를 설치하기 위한 사용자 정의 리소스 정의 예제입니다.

    apiVersion: ocs.ibm.io/v1
    kind: OcsCluster
    metadata:
      name: ocscluster-vpc # Kubernetes resource names can't contain capital letters or special characters. Enter a name for your resource that uses only lowercase letters, numbers, `-` or `.`
    spec:
      osdStorageClassName: <osdStorageClassName> # Specify an ODF storage class with a waitForFirstConsumer volume binding mode
      osdSize: <osdSize> # The OSD size is the total storage capacity of your OCS storage cluster. Use at least 250Gi OSDs for production workloads.
      numOfOsd: 1
      billingType: advanced
      ocsUpgrade: false
      workerNodes: # Specify the private IP addresses of the worker nodes where you want to install OCS.
        - <workerNodes> # To get a list worker nodes, run `oc get nodes`.
        - <workerNodes>
        - <workerNodes>
    
  2. 파일을 저장하고 OcsCluster 사용자 정의 리소스를 클러스터에 작성하십시오.

    oc create -f <ocs-cluster-filename>.yaml
    
  3. OcsCluster가 실행 중인지 확인하십시오.

    oc describe ocscluster ocscluster-vpc
    

    출력 예

    Name:         ocscluster-vpc
    Namespace:    
    Labels:       <none>
    Annotations:  <none>
    API Version:  ocs.ibm.io/v1
    Kind:         OcsCluster
    Metadata:
        Creation Timestamp:  2021-03-23T20:56:51Z
    Finalizers:
      finalizer.ocs.ibm.io
    Generation:  1
    Managed Fields:
      API Version:  ocs.ibm.io/v1
      Fields Type:  FieldsV1
      fieldsV1:
        f:spec:
          .:
          f:billingType:
          f:monSize:
          f:monStorageClassName:
          f:numOfOsd:
          f:ocsUpgrade:
          f:osdSize:
          f:osdStorageClassName:
      Manager:      oc
      Operation:    Update
      Time:         2021-03-23T20:56:51Z
      API Version:  ocs.ibm.io/v1
      Fields Type:  FieldsV1
      fieldsV1:
        f:metadata:
          f:finalizers:
            .:
            v:"finalizer.ocs.ibm.io":
        f:status:
          .:
          f:storageClusterStatus:
      Manager:         manager
      Operation:       Update
      Time:            2021-04-09T23:12:02Z
    Resource Version:  11372332
    Self Link:         /apis/ocs.ibm.io/v1/ocsclusters/ocscluster-vpc
    UID:               aa11a1a1-111f-aace-afac-1fa1afe1111a
    Spec:
      Billing Type:            hourly
      Mon Size:                20Gi
      Mon Storage Class Name:  ibmc-vpc-block-10iops-tier
      Num Of Osd:              1
      Ocs Upgrade:             false
      Osd Size:                250Gi
      Osd Storage Class Name:  ibmc-vpc-block-10iops-tier
    Status:
      Storage Cluster Status:  
    Events:                    <none>
    
  4. ODF를 사용하는 앱을 배치하십시오.

ODF 스케일링

numOfOsd 설정을 늘려 ODF 구성을 스케일링할 수 있습니다. OSD의 수를 늘리면 ODF가 ODF 클러스터의 각 작업자 노드에서 osdSize 용량(GB)이 동일한 해당 수의 디스크를 프로비저닝합니다. 그러나 애플리케이션에서 사용 가능한 총 스토리지는 osdSizenumOfOsd를 곱한 값과 같습니다.

OpenShift Data Foundation 스케일링
작업자 노드 수 초기osdSize numOfOsd 애플리케이션에서 사용 가능한 스토리지 용량 프로비저닝된 디스크의 총 스토리지
3 250Gi 1 250Gi 750Gi
3 250Gi 2 500Gi 1500Gi
3 250Gi 3 750Gi 2250Gi
3 250Gi 4 1000Gi 3000Gi

numOfOsd를 늘려 스케일링

Red Hat OpenShift 클러스터에 액세스하십시오.

  1. OcsCluster 사용자 정의 리소스의 이름을 가져오십시오.

    oc get ocscluster
    
  2. OcsCluster 사용자 정의 리소스 YAML 파일을 로컬 시스템에 ocscluster.yaml로 저장하십시오.

    oc get ocscluster ocscluster-vpc -o yaml
    
  3. numOfOsd 매개변수를 늘리고 클러스터에 ocscluster CRD를 다시 적용하십시오.

    oc apply -f ocscluster.yaml
    
  4. 추가 OSD가 작성되었는지 확인하십시오.

    oc get pv
    

VPC 클러스터에 작업자 노드를 추가하여 ODF 확장

스토리지 클러스터의 스토리지 용량을 늘리려면 호환 가능한 작업자 노드를 클러스터에 추가하십시오.

  1. 작업자 노드를 추가하여 OCS에 사용되는 클러스터의 작업자 풀을 확장하십시오. 작업자 노드가 ODF에 대한 요구사항을 충족하는지 확인하십시오. 클러스터의 모든 작업자 노드에 ODF를 배치한 경우 ODF 드라이버가 클러스터에 추가될 때 새 작업자 노드에 설치됩니다.

  2. OcsCluster 사용자 정의 리소스에서 매개변수를 지정하여 클러스터 내 일부 워커 노드에 ODF를 배포한 경우, 사용자 정의 리소스 정의를 편집하여 새로운 워커 노드의 노드 이름을 ODF 배포에 추가할 수 있습니다.

    oc edit ocscluster ocscluster-vpc
    
  3. OcsCluster 사용자 정의 리소스 파일을 저장하여 클러스터에 다시 적용하십시오.

제한사항

ODF 배치를 위한 다음 제한사항을 검토하십시오.

Kubernetes 리소스 ID 문자 수 제한: Kubernetes PVC 이름은 63자 미만이어야 합니다. 다중 구역 VPC 클러스터에서 ODF를 배치하고 메트로 retain 스토리지 클래스(예: ibmc-vpc-block-metro-retain-10iops-tier)를 사용하여 ODF 스토리지 클러스터를 작성하는 경우 이 스토리지 클래스를 사용하여 작성된 해당 ODF 디바이스 세트가 실패합니다. 자세한 정보는 Kubernetes 문자 수 제한으로 인해 ODF 디바이스 세트 작성에 실패함을 참조하십시오.

스토리지 클래스 참조

ODF 스토리지 클래스 참조