2016-10-20 39 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 
相關問題