왜 제 OpenShift Data Foundation 스토리지 클러스터의 상태가 ‘ Failed to reconcile ’에 머물러 있나요?

가상 사설 클라우드 기존 인프라

OpenShift Data Foundation 스토리지 클러스터를 생성하고 oc describe storagecluster `` 명령을 실행하면, PVC 이름이 Kubernetes의 문자 제한을 초과했다는 오류 메시지가 표시됩니다.

디바이스 세트는 OpenShift Data Foundation이 클러스터 전체에 데이터를 분산하는 데 사용하는 OSD( Object Storage ) 데몬들의 그룹입니다. 스토리지 클러스터를 생성하면, ‘ OpenShift Data Foundation’이 해당 디바이스 세트에 대한 PVC를 자동으로 생성합니다.

describe 명령을 실행하면 다음 예시와 유사한 오류가 표시됩니다.

ceph-cluster-controller: failed to reconcile. failed to reconcile cluster "ocs-storagecluster-cephcluster": failed to configure local ceph cluster: failed to create cluster: failed to start ceph osds: 3 failures encountered while running osds in namespace openshift-storage: failed to create "provision" job for node "ocs-deviceset-ibmc-vpc-block-metro-retain-10iops-tier-0-datnv6k". Job.batch "rook-ceph-osd-prepare-aaa000aaa111a1a0e10ba1a11aa1a119" is invalid: [spec.template.spec.volumes[8].name: Invalid value: "ocs-deviceset-ibmc-vpc-block-metro-retain-10iops-tier-0-aaaaa1b-bridge": must be no more than 63 characters

Kubernetes PVC 이름은 63자 미만이어야 합니다. 다중 존 VPC 클러스터를 사용 중이며, ibmc-vpc-block-metro-retain-10iops-tier 와 같은 ‘ retain ’ 스토리지 클래스를 사용하여 OpenShift Data Foundation 스토리지 클러스터를 생성할 경우, 해당 디바이스 세트 PVC에 63자 제한을 초과하는 이름이 할당됩니다.

생성된 PVC 이름이 ‘ Kubernetes ’의 문자 수 제한을 초과하지 않도록, 더 짧은 이름을 가진 사용자 정의 스토리지 클래스를 생성하십시오.

  1. OCS 스토리지 클러스터에 사용할 스토리지 클래스의 YAML 구성을 가져오고 파일로 작성하여 로컬 머신에 저장하십시오.

    oc get sc ibmc-vpc-block-metro-retain-10iops-tier -o yaml
    
  2. 스토리지 클래스의 이름을 편집하십시오. OpenShift Data Foundation 스토리지 클러스터 장치 세트 ID가 Kubernetes 에서 정한 63자 제한을 초과하지 않도록, 스토리지 클래스 이름이 30자 미만인지 확인하십시오. 클러스터에 스토리지 클래스를 작성하십시오.

    oc create -f <custom-storage-class.yaml>
    
  3. OpenShift Data Foundation 배포 환경을 정리하십시오.

  4. 방금 생성한 스토리지 클래스를 사용하는 ‘ OpenShift ’ 데이터 파운데이션 배포를 생성합니다.