我的部署配置如下:
apiVersion: extensions/v1beta1
kind: Deployment
--- REMOVED FOR BREVITY ---
volumes:
- gcePersistentDisk: {fsType: pd-ssd, pdName: devtasker-disk}
name: devtasker-disk
- gcePersistentDisk: {fsType: pd-ssd, pdName: devtasker-pg}
name: devtasker-pg
这样可以正常工作,但是它需要手动创建持久卷,然后才能进行部署。
我在Kubernetes 1.4中看到他们已经发布了" Dyanmic Provisioning&存储类"。
我添加了一个存储类,如下所示:
kind: StorageClass
apiVersion: storage.k8s.io/v1beta1
metadata:
name: ssd-storage
provisioner: kubernetes.io/gce-pd
parameters:
type: pd-ssd
我现在想在上面提到的部署配置文件中添加PVC。上述存储类的标准PVC如下所示:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
annotations: {volume.beta.kubernetes.io/storage-class: ssd-storage}
name: claim1
spec:
accessModes: [ReadWriteOnce]
resources:
requests: {storage: 30Gi}
我很难将上面的PVC放到上面第一个代码块中提到的部署配置中。
我试过了:
volumes:
- gcePersistentDisk: {fsType: pd-ssd, pdName: devtasker-disk}
name: devtasker-disk
- gcePersistentDisk: {fsType: pd-ssd, pdName: devtasker-pg}
name: devtasker-pg
- persistentVolumeClaim: {claimName: ssd-storage, annotations: {volume.beta.kubernetes.io/storage-class: ssd-storage}}
name: ssd-storage
..但我没有任何运气与许多不同的组合。我得到以下内容:
error validating "kubernetes/deployment.yml": error validating data: found invalid field annotations for v1.PersistentVolumeClaimVolumeSource; if you choose to ignore these errors, turn validation off with --validate=false
有人可以指点我在正确的方向吗?
答案 0 :(得分:2)
存储类告诉如何创建PV。 PVC声明从下划线基础结构请求实际PV。
您的部署应该只知道PVC,因此使用您的示例最终会得到以下内容并删除gcePersistentDisk
条目:
volumes:
- name: storage
persistentVolumeClaim
claimName: claim1
- name: storage2
persistentVolumeClaim
claimName: claim2