Oz1*_*123 11 linux nfs amazon-web-services kubernetes
我有以下持久量和音量声明:
kind: PersistentVolume
apiVersion: v1
metadata:
name: kloud
spec:
capacity:
storage: 100Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
nfs:
server: 172.21.51.42
path: /
readOnly: false
Run Code Online (Sandbox Code Playgroud)
和:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: kloud
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 100Gi
Run Code Online (Sandbox Code Playgroud)
nfs服务器是AWS EFS.我特意ssh到k8s master并检查我可以手动挂载NFS卷.但是,当我使用kubectl创建卷和声明时,它会无限期挂起,等待:
$ kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE
kloud Pending gp2 8s
Run Code Online (Sandbox Code Playgroud)
如果我将模式更改为ReadWriteOnce,它将按预期工作,不会挂起.
$ kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE
kloud Bound pvc-c9a01bff-94d0-11e7-8ed4-0aec4a0f734a 100Gi RWO gp2
Run Code Online (Sandbox Code Playgroud)
有什么我想念的吗?如何使用k8s和EFS创建RWX声明?
vas*_*cop 13
您需要在群集中设置EFS配置程序.默认的Kubernetes发行版仍然不支持挂载EFS,因此您需要此扩展名:https://github.com/kubernetes-incubator/external-storage/tree/master/aws/efs
您需要设置它的存储类:
kind: StorageClass
apiVersion: storage.k8s.io/v1beta1
metadata:
name: aws-efs
provisioner: example.com/aws-efs
Run Code Online (Sandbox Code Playgroud)
然后写PVC的类型:
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: efs
annotations:
volume.beta.kubernetes.io/storage-class: "aws-efs"
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Mi
Run Code Online (Sandbox Code Playgroud)
不要介意存储大小,虽然EFS没有使用它,但Kubernetes要求你设置一些东西才能使用它.
| 归档时间: |
|
| 查看次数: |
4782 次 |
| 最近记录: |