2016-10-20 47 views
1

的动态配置我有一个部署配置如下:Kubernetes - 存储

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 & Storage Classes”。

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

你可能要发布完整的“kubernetes/deployment.yml”文件在这里作为参考,因为你得到的错误指向了这一点。 –

回答

2

存储类讲述如何创建PV。 PVC索赔要求来自下划线基础设施的实际PV。

您的部署应该只了解PVC,所以使用例如,你最终会与下面的并删除gcePersistentDisk项:

volumes: 
    - name: storage 
    persistentVolumeClaim 
     claimName: claim1 
    - name: storage2 
    persistentVolumeClaim 
     claimName: claim2 
相关问题