2017-09-08 20 views
4

私は、次の永続的なボリュームとボリューム主張があります。AWS EFSとReadWriteManyを使用して永続ボリュームクレームを設定する方法は?

kind: PersistentVolume 
apiVersion: v1 
metadata: 
    name: kloud 
spec: 
    capacity: 
    storage: 100Gi 
    accessModes: 
    - ReadWriteMany 
    persistentVolumeReclaimPolicy: Retain 
    nfs: 
    server: 172.21.51.42 
    path:/
    readOnly: false 

と:

kind: PersistentVolumeClaim 
apiVersion: v1 
metadata: 
    name: kloud 
spec: 
    accessModes: 
    - ReadWriteMany 
    resources: 
    requests: 
     storage: 100Gi 

NFSサーバがAWS EFSです。私は特にk8sマスターにsshし、NFSボリュームを手動でマウントできることを確認しました。私はボリュームとkubectlとの主張を作成するときしかし、それは無限にあり、保留中にハング:

$ kubectl get pvc 
NAME  STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE 
kloud  Pending          gp2   8s 

私はReadWriteOnceにモードを変更すると、それが期待どおりに動作し、ハングアップしません。

$ kubectl get pvc 
NAME  STATUS VOLUME          CAPACITY ACCESSMODES STORAGECLASS AGE 
kloud  Bound  pvc-c9a01bff-94d0-11e7-8ed4-0aec4a0f734a 100Gi  RWO   gp2  

欠けているものがありますか? k8sとEFSでRWXクレームを作成するにはどうしたらいいですか?

答えて

4

クラスタにEFS-provisionerをセットアップする必要があります。 PVCのタイプのを書き、その後

kind: StorageClass 
apiVersion: storage.k8s.io/v1beta1 
metadata: 
    name: aws-efs 
provisioner: example.com/aws-efs 

そして:https://github.com/kubernetes-incubator/external-storage/tree/master/aws/efs

あなたはそれのストレージクラスを設定する必要があります:EFSはまだデフォルトKubernetes分布でサポートされている、そのようにあなたはこの拡張機能を必要とされていないマウント:それはEFSで使用されていないですが

kind: PersistentVolumeClaim 
apiVersion: v1 
metadata: 
    name: efs 
    annotations: 
    volume.beta.kubernetes.io/storage-class: "aws-efs" 
spec: 
    accessModes: 
    - ReadWriteMany 
    resources: 
    requests: 
     storage: 1Mi 

ストレージサイズを気にしないでください、Kubernetesはそれを動作させるためにそこに何かを設定する必要があります。

+0

私は 'example.com'を自分のマスターホスト名に置き換えるべきですか? e.s. 'k8s-master.mydomain.cloud'?これは何のため? – Oz123

+0

これはあなたが望むものであればどんなものでもかまいません。このスペースラスを使用したいときに参照するリソースがあります。 – vascop

関連する問題