最近更新时间:2025-09-19 17:25:43
完成POSIX客户端安装并挂载文件系统,参考 “性能Ⅰ型、性能Ⅱ型” 章节。
静态挂载可以指定pv参数直接创建pv,然后创建pvc绑定该pv。
若需通过金山云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根据以下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
|
Protocol | 协议类型,本环境中使用posix |
StoragePool | 数据存储池名,本环境中使用storage_pool |
paramServer | 前往 控制台>文件系统详情 >基本信息,获取存储池名称 |
paramShare | 存储中对应的文件系统名,如:raw_data_storage |
volumeHandle | posix-数据存储池名-文件系统名-一级子目录名,如: posix-storage_pool-filesystemname-volumename·
|
注意:使用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
|
根据以下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卷名 |
根据以下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 |
注意:使用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 | 访问域名,请联系金山云获取 |
根据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名称 |
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
纯净模式