14.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
이 작업이 즉시 작동하지 않으면 Kubernetes 환경이 여전히 NFS 서버로 수신을 허용하도록 네트워크 리소스를 구성하는 데 시간이 걸릴 수 있습니다.