您可以在金山云容器服务Kubernetes集群中使用云硬盘存储卷,支持以静态存储卷的形式挂载到容器的某一路径,云硬盘会随着容器的迁移而迁移。
目前,金山云提供两种kubernetes挂载方式:
静态存储卷
可以通过以下两种方式使用云硬盘静态存储卷:
1、云硬盘为非共享存储,只能被一个实例挂载,实例数量需要设置为1。
2、使用前需要先在控制台申请一块云硬盘,并获得磁盘 ID(volumeId)。
3、volumeName、PV Name要与之volumeId相同。
4、集群中只有与云盘在同一个可用区(Zone)的节点才可以挂载云盘。
5、文件系统类型(fsType)支持ext3、ext4、xfs。
6、目前金山云售卖云服务器中,通用性N1、通用型N2、IO优化型I2和IO优化型I3云主机支持挂载云硬盘(详见云硬盘使用限制)。如您选择云硬盘作为存储卷,建议在创建服务时,将pod调度到以上机型,否则可能存在云硬盘无法挂载的情况出现。具体调度方式参考将 Pod 分配给节点。
下面的示例nginx-disk-deploy.yaml将yaml文件中声明的EBS云硬盘挂在到pod内的nginx-flexvolume-disk容器的**/data**路径下:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-disk-deploy
spec:
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx-flexvolume-disk
image: nginx
volumeMounts:
- name: "b5c80953-1499-40ff-918a-4d6d4dfbfddd"
mountPath: "/data"
volumes:
- name: "b5c80953-1499-40ff-918a-4d6d4dfbfddd"
flexVolume:
driver: "ksc/ebs"
fsType: "ext4"
options:
volumeId: "b5c80953-1499-40ff-918a-4d6d4dfbfddd"
定义PV:
apiVersion: v1
kind: PersistentVolume
metadata:
name: "b5c80953-1499-40ff-918a-4d6d4dfbfddd"
spec:
capacity:
storage: 20Gi
storageClassName: disk
accessModes:
- ReadWriteOnce
flexVolume:
driver: "ksc/ebs"
fsType: "ext4"
options:
volumeId: "b5c80953-1499-40ff-918a-4d6d4dfbfddd"
定义PVC:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-disk
spec:
accessModes:
- ReadWriteOnce
storageClassName: disk
resources:
requests:
storage: 20Gi
创建deployment:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-disk-deploy
spec:
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx-flexvolume-disk
image: nginx
volumeMounts:
- name: pvc-disk
mountPath: "/data"
volumes:
- name: pvc-disk
persistentVolumeClaim:
claimName: pvc-disk
动态存储卷需要手动创建 StorageClass,并在PVC中指定storageClassName。
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ssd30
provisioner: ksc/ebs
parameters:
type: SSD3.0
zone: cn-beijing-6b # 选填 #
chargetype: Daily
参数说明:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
volumeMounts:
- name: pvc-disk
mountPath: "/data"
volumes:
- name: pvc-disk
persistentVolumeClaim:
claimName: nginx-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nginx-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: ssd30
resources:
requests:
storage: 20Gi
文档内容是否对您有帮助?
评价建议不能为空
非常感谢您的反馈,我们会继续努力做到更好!