最近更新时间:2025-01-03 14:01:31
静态挂载可以指定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·
|
根据以下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 |
根据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
纯净模式