2016-10-20 9 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 &ストレージクラス」をリリースしました。

次のように私は、ストレージクラスを追加しました:

kind: StorageClass 
apiVersion: storage.k8s.io/v1beta1 
metadata: 
    name: ssd-storage 
provisioner: kubernetes.io/gce-pd 
parameters: 
    type: pd-ssd 

私は今、上記の私の展開構成ファイルに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を得るのに苦労:上記のストレージ・クラスのための標準的な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エントリ削除する必要がありますあなたの展開:あなたは完全な「kubernetes/deployment.yml」を投稿することができます

volumes: 
    - name: storage 
    persistentVolumeClaim 
     claimName: claim1 
    - name: storage2 
    persistentVolumeClaim 
     claimName: claim2