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 서버로 수신을 허용하도록 네트워크 리소스를 구성하는 데 시간이 걸릴 수 있습니다.