View a markdown version of this page

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

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

SMB CSI ドライバーの使用

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

注記

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 クラスターのポッドを設定します。詳細については、https://kubernetes.io/docs/concepts/storage/ で Kubernetes オンラインドキュメントを参照してください。

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 および作成した2つの .yaml ファイルにアクセスできるコマンドラインターミナルから、次のコマンドを実行します。

    kubectl apply -f persistentvolume.yaml

    kubectl apply -f persistentvolumeclaim.yaml

    注記

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

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

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

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

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