翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
SMB CSI ドライバーの使用
このセクションの手順に従って、Kubernetes クラスターのストレージに Amazon S3 ファイルゲートウェイで 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 ドライバーをインストールするには:
-
Kubernetes クラスターの
kubectlにアクセスできるコマンドラインターミナルから、次のコマンドを実行します。curl -skSL https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/deploy/install-driver.sh | bash -s master --
-
前のコマンドが終了するのを待ってから、次のコマンドを使用して 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 オブジェクトを作成するには:
-
storageclass.yamlという名の設定ファイルを作成し、次の例と同様の内容を記述します。表示されているExampleValuesを、デプロイ固有の情報に置き換えます。--- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name:ExampleStorageClassNameprovisioner: 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 -
kubectlおよびstorageclass.yamlにアクセスできるコマンドラインターミナルから、次のコマンドを実行します。kubectl apply -f storageclass.yaml
注記
前の手順の
.yaml設定テキストをほとんどのサードパーティ製 Kubernetes 管理およびコンテナ化プラットフォームに提供することで、StorageClass を作成することもできます。 -
作成した新しい StorageClass を使用するように Kubernetes クラスターのポッドを設定します。詳細については、https://kubernetes.io/docs/concepts/storage/
で Kubernetes オンラインドキュメントを参照してください。
SMB PersistentVolume オブジェクトと PersistentVolumeClaim オブジェクトを作成する
新しい SMB PersistentVolume オブジェクトと PersistentVolumeClaim オブジェクトを作成するには:
-
2つの設定ファイルを作成します。1 つは
persistentvolume.yaml、もう 1 つはpersistentvolumeclaim.yamlという名前にします。 -
persistentvolume.yamlには、次の例のようなコンテンツを追加します。表示されているExampleValuesを、デプロイ固有の情報に置き換えます。--- apiVersion: v1 kind: PersistentVolume metadata: name:pv-smb-example-namenamespace: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-smbcredsnamespace:smb-example-namespace -
persistentvolumeclaim.yamlには、次の例のようなコンテンツを追加します。表示されているExampleValuesを、デプロイ固有の情報に置き換えます。--- kind: PersistentVolumeClaim apiVersion: v1 metadata: name:examplename-pvc-smb-staticnamespace: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: "" -
kubectlおよび作成した2つの.yamlファイルにアクセスできるコマンドラインターミナルから、次のコマンドを実行します。kubectl apply -f persistentvolume.yaml
kubectl apply -f persistentvolumeclaim.yaml
注記
前の手順の
.yaml設定テキストを、ほとんどのサードパーティ製 Kubernetes 管理およびコンテナ化プラットフォームに提供することで、PersistentVolume オブジェクトと PersistentVolumeClaim オブジェクトを作成することもできます。 -
作成した新しい 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 --