13.4. OpenShift 클러스터에서 NFS 내보내기 사용


OpenShift 클러스터 외부의 NFS 클라이언트는 이전에 생성된 PVC로 생성된 NFS 내보내기를 마운트할 수 있습니다.

절차

  1. 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
  2. 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단계에서 얻은 값으로 바꿉니다.

  3. 연결 정보를 수집합니다. 외부 클라이언트가 내보내기에 연결해야 하는 정보는 PVC에 대해 생성된 영구 볼륨(PV)에서 가져오고 이전 단계에서 생성한 LoadBalancer 서비스의 상태입니다.

    1. PV에서 공유 경로를 가져옵니다.

      1. 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
      2. 이전에 가져온 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
    2. 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"}]
  4. 이전 단계의 공유 경로 및 수신 주소를 사용하여 외부 클라이언트를 연결합니다. 다음 예제에서는 클라이언트의 디렉토리 경로 /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 환경이 시간이 걸릴 수 있습니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.