全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

CSI挂载及使用

最近更新时间:2025-09-19 17:25:43

前置条件

  1. 完成POSIX客户端安装并挂载文件系统,参考 “性能Ⅰ型、性能Ⅱ型” 章节。

静态存储卷

静态挂载可以指定pv参数直接创建pv,然后创建pvc绑定该pv。

创建Secret

若需通过金山云IAM自定义策略控制存储卷的读写权限,需创建Secret.yaml,并在PVC中引用。

否则,直接创建pvc绑定该pv即可。

根据以下yaml参数创建Secret:

---
apiVersion: v1
kind: Secret
metadata:
  name: kingstorage-aksk-secret
  namespace: default
stringData:
  accessKey: Q0FLQUtSQVVTUUFXX0lQTQ==
  secretKey: eGFSMlpwbVpLc1BbmRpDWNRVNxc0dQVlBxZXlLd1NocFJicg==

参数

说明

name

可根据业务需要自定义,与pv中的引用一致即可

namespace

可根据业务需要自定义,与pv中的引用一致即可

accessKey

用户使用的公有云服务的ak,经base64加密后的字符串,使用

echo -n "原始ak值" | base64 命令获取

secretKey

用户使用的公有云服务的sk,经base64加密后的字符串,使用

echo -n "原始sk值" | base64 命令获取

注意:secrets内使用的字段类型务必使用stringData,不要使用data。

secret 创建成功后,请get该secret查看ak/sk是否与 echo -n "原始ak/sk值" | base64 命令获取到的一致。

kubectl get secrets kingstorage-aksk-secret -o yaml

创建PV

(1)POSIX方式

根据以下yaml参数创建静态pv:

---
apiVersion: v1
kind: PersistentVolume
metadata:
  annotations:
    pv.kubernetes.io/provisioned-by: kingstoragenas.csi.kingsoftcloud.com
  name: tes1
spec:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 100Ti
  mountOptions:
    - user_xattr
    - noatime
  csi:
    driver: kingstoragenas.csi.kingsoftcloud.com
    readOnly: false
    volumeAttributes:
      Protocol: posix
      StoragePool: storage_pool
      paramServer: KingstorageNAS
      paramShare: testvolume
    volumeHandle:  posix-storage_pool-filesystemname-volumename
  persistentVolumeReclaimPolicy: Retain
  volumeMode: Filesystem

参数

说明

accessModes

访问模式,需按照使用模式指定。可选项:

ReadWriteOnce

ReadOnlyMany

ReadWriteMany

注:不同pod有不同权限需求时,需创建不同权限的pv进行访问,通过accessMode控制。

Protocol

协议类型,本环境中使用posix

StoragePool

数据存储池名,本环境中使用storage_pool

paramServer

前往 控制台>文件系统详情 >基本信息,获取存储池名称

paramShare

存储中对应的文件系统名,如:raw_data_storage

volumeHandle

posix-数据存储池名-文件系统名-一级子目录名,如:

posix-storage_pool-filesystemname-volumename·

注:子目录需提前创建完成

(2)NFS方式

注意:使用NFS协议前,请先联系金山云开启授权。

根据以下方式创建NFS静态PV:

---
apiVersion: v1
kind: PersistentVolume
metadata:
  annotations:
    pv.kubernetes.io/provisioned-by: kingstoragenas.csi.kingsoftcloud.com
  name: raw-data-storage-nfs-test1
spec:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 100Ti
  mountOptions:
    - hard
    - vers=3
    - nolock
    - mountproto=tcp
  csi:
    driver: kingstoragenas.csi.kingsoftcloud.com
    readOnly: false
    volumeAttributes:
      AccessZoneID: "1"
      Protocol: "nfs"
      StoragePool: storage_pool
      paramServer: "example.kingcloud.cn" #示例
      paramShare: "/mnt/raw_data_storage/raw_data_storage"
    volumeHandle: nfs-storage_pool-filesystemname-volumename 
  persistentVolumeReclaimPolicy: Retain

参数

说明

AccessZoneID

访问区ID,请联系金山云获取

Protocol

协议类型: nfs

StoragePool

数据存储池名,本环境请使用storage_pool

paramServer

nfs访问区的域名,请联系金山云获取

paramShare

mount时使用的挂载点信息。需要同volumeHandle中的路径是一一对应的

命名规则: /mnt/存储系统中对应文件系统名称/一级子目录名称

/mnt/raw_data_storage/raw_data_storage

volumeHandle

nfs-数据存储池名-文件系统名-一级子目录名,如:

nfs-storage_pool-filesystemname-volumename

注:子目录需要提前创建完成

创建PVC

根据以下yaml参数指定上方创建的pv来创建pvc:

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-static-posix-test1
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 3000Mi
  volumeName: raw_data_storage-posix-test1

参数

说明

accessModes

访问模式,需按照使用模式指定。可选项:

ReadWriteOnce

ReadOnlyMany

ReadWriteMany

volumeName

pv卷名

动态存储卷

创建StorageClass

(1)POSIX方式

根据以下yaml参数创建StorageClass:

---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: kingstorageposix-raw
provisioner: kingstoragenas.csi.kingsoftcloud.com
parameters:
  csi.storage.k8s.io/provisioner-secret-name: kingstorage-aksk-secret
  csi.storage.k8s.io/provisioner-secret-namespace: default
  csi.storage.k8s.io/controller-expand-secret-name: kingstorage-aksk-secret
  csi.storage.k8s.io/controller-expand-secret-namespace: default
  csi.storage.k8s.io/node-stage-secret-name: kingstorage-aksk-secret
  csi.storage.k8s.io/node-stage-secret-namespace: default
  csi.storage.k8s.io/node-publish-secret-name: kingstorage-aksk-secret
  csi.storage.k8s.io/node-publish-secret-namespace: default
  StoragePool: "storage_pool"
  FileSystemVolume: "raw_data_storage"
  ClusterName: "KingstorageNAS" #示例
  Protocol: "posix"
reclaimPolicy: Retain
volumeBindingMode: Immediate
allowVolumeExpansion: true
mountOptions:
  - user_xattr
  - noatime

参数

说明

StoragePool

数据存储池名称,在本环境中使用storage_pool

FileSystemVolume

文件卷名称,根据使用的文件系统指定

ClusterName

前往 控制台>文件系统详情 >基本信息,获取存储池名称。

Protocol

协议名称,指定 posix

(2)NFS方式

注意:使用NFS协议前,请先联系金山云开启授权。

根据以下yaml参数创建StorageClass:

---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: kingstorageposix-raw
provisioner: kingstoragenas.csi.kingsoftcloud.com
parameters:
  csi.storage.k8s.io/provisioner-secret-name: kingstorage-aksk-secret
  csi.storage.k8s.io/provisioner-secret-namespace: default
  csi.storage.k8s.io/controller-expand-secret-name: kingstorage-aksk-secret
  csi.storage.k8s.io/controller-expand-secret-namespace: default
  csi.storage.k8s.io/node-stage-secret-name: kingstorage-aksk-secret
  csi.storage.k8s.io/node-stage-secret-namespace: default
  csi.storage.k8s.io/node-publish-secret-name: kingstorage-aksk-secret
  csi.storage.k8s.io/node-publish-secret-namespace: default
  StoragePool: "storage_pool"
  FileSystemVolume: "raw_data_storage"
  Protocol: "nfs"
  AccessZoneID: "1"
  BusinessVIPDomainName: "example.kingcloud.com" #示例
reclaimPolicy: Delete
volumeBindingMode: Immediate
allowVolumeExpansion: true
mountOptions:
  - hard
  - nolock
  - vers=3
  - mountproto=tcp

参数

说明

StoragePool

数据存储池名称,在本环境中使用storage_pool

FileSystemVolume

文件卷名称,根据使用的文件系统指定

Protocol

协议名称,因为默认为nfs,此处指明nfs或者不写该字段均可

AccessZoneID

访问区ID,请联系金山云获取

BusinessVIPDomainName

访问域名,请联系金山云获取

创建PVC

根据StorageClass创建pvc,pv将被自动创建且自动绑定。

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-dym-posix-test1
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1300Mi
  storageClassName: kingstorageposix-raw

参数

说明

accessModes

访问模式,需按照使用模式指定。可选项:

ReadWriteOnce

ReadOnlyMany

ReadWriteMany

storageClassName

StorageClass名称

使用PVC

PV/PVC创建完成后,按照标准的K8S命令正常使用即可。

---
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod-posix-test1
spec:
  containers:
    - image: nginx:latest
      imagePullPolicy: IfNotPresent
      name: nginx
      ports:
        - containerPort: 80
          protocol: TCP
      volumeMounts:
        - mountPath: /usr/share/nginx/html
          name: pvc-nginx
  volumes:
    - name: pvc-nginx
      persistentVolumeClaim:
        claimName: pvc-dym-posix-test1

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈