14.4. OpenShift 클러스터에서 NFS 내보내기 사용
OpenShift Data Foundation과 동일한 클러스터 내의 컨테이너 또는 OpenShift Virtualization VM에서 실행되는 NFS 클라이언트는 기존 PVC에서 생성된 NFS 내보내기를 마운트할 수 있습니다.
프로세스
nfs플래그가 활성화되면 Rook에서 singe-server CephNFS를 배포합니다. 다음 단계에서 사용할nfs-ganesha서버의ceph_nfs필드 값을 가져와야 합니다.$ oc get pods -n openshift-storage | grep rook-ceph-nfs$ oc describe pod <name of the rook-ceph-nfs pod> | grep ceph_nfs예를 들면 다음과 같습니다.
$ oc describe pod rook-ceph-nfs-ocs-storagecluster-cephnfs-a-7bb484b4bf-bbdhs | grep ceph_nfs ceph_nfs=my-nfsKubernetes LoadBalancer Service를 생성하여 OpenShift 클러스터 외부에 NFS 서버를 노출합니다. 아래 예제에서는 LoadBalancer 서비스를 생성하고 OpenShift Data Foundation에서 생성한 NFS 서버를 참조합니다.
apiVersion: v1 kind: Service metadata: name: rook-ceph-nfs-ocs-storagecluster-cephnfs-load-balancer namespace: openshift-storage spec: ports: - name: nfs port: 2049 type: LoadBalancer externalTrafficPolicy: Local selector: app: rook-ceph-nfs ceph_nfs: <my-nfs> instance: a&
lt;my-nfs>를 1단계에서 얻은 값으로 바꿉니다.연결 정보를 수집합니다. NFS 클라이언트가 내보내기에 연결하는 데 필요한 정보는 PVC에 대해 생성된 PV(영구 볼륨) 및 이전 단계에서 생성한 LoadBalancer 서비스의 상태에서 가져옵니다.
PV에서 공유 경로를 가져옵니다.
NFS 내보내기의 PVC와 연결된 PV의 이름을 가져옵니다.
$ oc get pvc <pvc_name> --output jsonpath='{.spec.volumeName}' pvc-39c5c467-d9d3-4898-84f7-936ea52fd99d&
lt;pvc_name>을 자체 PVC 이름으로 바꿉니다. 예를 들면 다음과 같습니다.oc get pvc pvc-39c5c467-d9d3-4898-84f7-936ea52fd99d --output jsonpath='{.spec.volumeName}' pvc-39c5c467-d9d3-4898-84f7-936ea52fd99d이전에 얻은 PV 이름을 사용하여 NFS 내보내기의 공유 경로를 가져옵니다.
$ oc get pv pvc-39c5c467-d9d3-4898-84f7-936ea52fd99d --output jsonpath='{.spec.csi.volumeAttributes.share}' /0001-0011-openshift-storage-0000000000000001-ba9426ab-d61b-11ec-9ffd-0a580a800215
NFS 서버의 수신 주소를 가져옵니다. 서비스의 수신 상태는 여러 주소가 있을 수 있습니다. NFS 클라이언트에 사용할 항목을 선택합니다. 아래 예제에는 단일 주소만 있습니다. 호스트 이름
ingress-id.somedomain.com.$ oc -n openshift-storage get service rook-ceph-nfs-ocs-storagecluster-cephnfs-load-balancer --output jsonpath='{.status.loadBalancer.ingress}' [{"hostname":"ingress-id.somedomain.com"}]
이전 단계의 공유 경로 및 수신 주소를 사용하여 NFS 클라이언트를 연결합니다. 다음 예제에서는 클라이언트의 디렉토리 경로
/export/mount/path에 내보내기를 마운트합니다.$ mount -t nfs4 -o proto=tcp ingress-id.somedomain.com:/0001-0011-openshift-storage-0000000000000001-ba9426ab-d61b-11ec-9ffd-0a580a800215 /export/mount/path이 작업이 즉시 작동하지 않으면 Kubernetes 환경이 여전히 NFS 서버로 수신을 허용하도록 네트워크 리소스를 구성하는 데 시간이 걸릴 수 있습니다.