13.4. OpenShift 클러스터에서 NFS 내보내기 사용
OpenShift 클러스터 외부의 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-nfs
Kubernetes 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&
gt;를 1단계에서 얻은 값으로 바꿉니다.연결 정보를 수집합니다. 외부 클라이언트가 내보내기에 연결해야 하는 정보는 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&
gt;을 자체 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 서버의 수신 주소를 가져옵니다. 서비스의 수신 상태에는 여러 주소가 있을 수 있습니다. 외부 고객에게 사용하고자 하는 것을 선택합니다. 아래 예제에서는 호스트 이름
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"}]
이전 단계의 공유 경로 및 수신 주소를 사용하여 외부 클라이언트를 연결합니다. 다음 예제에서는 클라이언트의 디렉토리 경로
/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
이 작업이 즉시 작동하지 않으면 NFS 서버로 수신할 수 있도록 네트워크 리소스를 구성하는 데 여전히 Kubernetes 환경이 시간이 걸릴 수 있습니다.