検索

13.4. OpenShift クラスターから外部で NFS エクスポートを使用する

download PDF

OpenShift クラスター外の NFS クライアントは、以前に作成された PVC によって作成された NFS エクスポートをマウントできます。

手順

  1. nfs フラグが有効になると、単一サーバーの CephNFS が Rook によってデプロイされます。次のステップで使用する 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 Service を作成し、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

    <my-nfs> を手順 1 で取得した値に置き換えます。

  3. 接続情報を収集します。外部クライアントがエクスポートに接続するために必要な情報は、PVC 用に作成された永続ボリューム (PV) と、前の手順で作成された LoadBalancer Service のステータスから取得されます。

    1. PV から共有パスを取得します。

      1. NFS エクスポートの PVC に関連付けられた PV の名前を取得します。

        $ oc get pvc <pvc_name> --output jsonpath='{.spec.volumeName}'
        pvc-39c5c467-d9d3-4898-84f7-936ea52fd99d

        <pvc_name> を独自の 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 アドレスを取得します。サービスの Ingress ステータスには、複数のアドレスがある場合があります。外部クライアントに使用するアドレスを選択します。以下の例では、ホスト名 ingress-id.somedomain.com という 1 つのアドレスしかありません。

      $ 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. 前の手順の共有パスと Ingress アドレスを使用して、外部クライアントを接続します。次の例では、エクスポートをクライアントのディレクトリーパス /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 サーバーへの Ingress を許可するためのネットワークリソースの設定に、まだ時間がかかっている可能性があります。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.