SMB CSI ドライバーの使用 - AWS Storage Gateway

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

SMB CSI ドライバーの使用

このセクションの手順に従って、Kubernetes クラスターのストレージに Amazon S3 File Gateway で SMB ファイル共有を使用するために必要な CSI ドライバーをインストール、設定、または削除します。詳細については、 の GitHub にあるオープンソースの SMB CSI ドライバードキュメントを参照してくださいhttps://github.com/kubernetes-csi/csi-driver-smb/blob/master/docs/install-csi-driver-master.md

注記

PersistentVolume オブジェクトまたはStorageClassオブジェクトを作成するときに、ReclaimPolicyパラメータを指定して、オブジェクトが削除されたときに外部ストレージがどうなるかを決定できます。SMB CSI ドライバーは Retainおよび Recycleオプションをサポートしていますが、現在 Deleteオプションをサポートしていません。

ドライバーをインストールする

Kubernetes SMB CSI ドライバーをインストールするには:
  1. Kubernetes クラスターkubectlの にアクセスできるコマンドラインターミナルから、次のコマンドを実行します。

    curl -skSL https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/install-driver.sh | bash -s master --

  2. 前のコマンドが終了するのを待ってから、次のコマンドを使用して CSI ドライバーポッドが実行されていることを確認します。

    kubectl -n kube-system get pod -o wide --watch -l app=csi-smb-controller

    kubectl -n kube-system get pod -o wide --watch -l app=csi-smb-node

    出力は次の例に類似したものになります:

    NAME READY STATUS RESTARTS AGE IP NODE csi-smb-controller-56bfddd689-dh5tk 4/4 Running 0 35s 10.240.0.19 k8s-agentpool-22533604-0 csi-smb-controller-56bfddd689-8pgr4 4/4 Running 0 35s 10.240.0.35 k8s-agentpool-22533604-1 csi-smb-node-cvgbs 3/3 Running 0 35s 10.240.0.35 k8s-agentpool-22533604-1 csi-smb-node-dr4s4 3/3 Running 0 35s 10.240.0.4 k8s-agentpool-22533604-0

SMB StorageClass オブジェクトを作成する

Kubernetes クラスターの新しい SMB StorageClass オブジェクトを作成するには:
  1. 次の例のような内容storageclass.yamlで という名前の設定ファイルを作成します。表示される ExampleValues を独自のデプロイ固有の情報に置き換えます。

    --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: ExampleStorageClassName provisioner: smb.csi.k8s.io parameters: source: "//gateway-dns-name-or-ip-address/example-share-name" # if csi.storage.k8s.io/provisioner-secret is provided, will create a sub directory # with PV name under source csi.storage.k8s.io/provisioner-secret-name: "examplesmbcreds" csi.storage.k8s.io/provisioner-secret-namespace: "examplenamespace" csi.storage.k8s.io/node-stage-secret-name: "examplesmbcreds" csi.storage.k8s.io/node-stage-secret-namespace: "examplenamespace" volumeBindingMode: Immediate reclaimPolicy: Retain mountOptions: - dir_mode=0777 - file_mode=0777 - uid=1001 - gid=1001
  2. kubectl および にアクセスできるコマンドラインターミナルからstorageclass.yaml、次のコマンドを実行します。

    kubectl apply -f storageclass.yaml

    注記

    前のステップ.yamlの設定テキストをほとんどのサードパーティーの Kubernetes 管理およびコンテナ化プラットフォームに提供することで、StorageClass を作成することもできます。

  3. 作成した新しい StorageClass を使用するように Kubernetes クラスターのポッドを設定します。詳細については、 の Kubernetes オンラインドキュメントを参照してくださいhttps://kubernetes.io/docs/concepts/storage/

SMB PersistentVolume オブジェクトと PersistentVolumeClaim オブジェクトを作成する

新しい SMB PersistentVolume オブジェクトと PersistentVolumeClaim オブジェクトを作成するには:
  1. 2 つの設定ファイルを作成します。1 つは という名前persistentvolume.yaml、もう 1 つは という名前ですpersistentvolumeclaim.yaml

  2. にはpersistentvolume.yaml、次の例のようなコンテンツを追加します。表示される ExampleValues の独自のデプロイ固有の情報を置き換えます。

    --- apiVersion: v1 kind: PersistentVolume metadata: name: pv-smb-example-name namespace: smb-example-namespace # PersistentVolume and PersistentVolumeClaim must use the same namespace parameter spec: capacity: storage: 100Gi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain mountOptions: - dir_mode=0777 - file_mode=0777 - vers=3.0 csi: driver: smb.csi.k8s.io readOnly: false volumeHandle: examplehandle # make sure it's a unique id in the cluster volumeAttributes: source: "//gateway-dns-name-or-ip-address/example-share-name" nodeStageSecretRef: name: example-smbcreds namespace: smb-example-namespace
  3. にはpersistentvolumeclaim.yaml、次の例のようなコンテンツを追加します。表示される ExampleValues の独自のデプロイ固有の情報を置き換えます。

    --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: examplename-pvc-smb-static namespace: smb-example-namespace # PersistentVolume and PersistentVolumeClaim must use the same namespace parameter spec: accessModes: - ReadWriteMany resources: requests: storage: 10Gi volumeName: pv-smb-example-name # make sure specfied volumeName matches the name of the PersistentVolume you created storageClassName: ""
  4. kubectl および作成した両方の.yamlファイルにアクセスできるコマンドラインターミナルから、次のコマンドを実行します。

    kubectl apply -f persistentvolume.yaml

    kubectl apply -f persistentvolumeclaim.yaml

    注記

    前のステップ.yamlの設定テキストをほとんどのサードパーティーの Kubernetes 管理およびコンテナ化プラットフォームに提供することで、PersistentVolume オブジェクトと PersistentVolumeClaim オブジェクトを作成することもできます。

  5. 作成した新しい PersistentVolumeClaim を使用するように Kubernetes クラスターのポッドを設定します。詳細については、 の Kubernetes オンラインドキュメントを参照してくださいhttps://kubernetes.io/docs/concepts/storage/

ドライバーのアンインストール

Kubernetes SMB CSI ドライバーをアンインストールするには:
  • Kubernetes クラスターkubectlの にアクセスできるコマンドラインターミナルから、次のコマンドを実行します。

    curl -skSL https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/uninstall-driver.sh | bash -s --