我在 AWS EKS 上的 kubernetes 集群的帮助下运行我的 docker 容器。我的两个 docker 容器正在使用共享卷,并且这两个容器都在两个不同的 pod 内运行。所以我想要一个可供 aws 上的两个 Pod 使用的通用卷。
我创建了一个 EFS 卷并安装了。我正在按照链接创建PersistentVolumeClaim
。但我收到超时错误efs-provider
pod 尝试附加已安装的 EFS 卷空间。VolumeId
、 地区仅正确。
Pod 的详细错误消息描述:
等待 pod“default”/“efs-provisioner-55dcf9f58d-r547q”附加或安装卷时超时。已卸载卷的列表=[pv-volume]。未附加卷列表=[pv-volume default-token-lccdw]
卷“pv-volume”的 MountVolume.SetUp 失败:安装失败:退出状态 32
AWS EFS 使用 NFS 类型卷插件,并且按照Kubernetes 存储类NFS 卷插件不像 EBS 那样附带内部 Provisioner。
所以步骤将是:
- 为 NFS 卷插件创建外部 Provisioner。
- 创建存储类。
- 创建一卷声明。
-
在部署中使用卷声明。
---
apiVersion: v1
kind: ConfigMap
metadata:
name: efs-provisioner
data:
file.system.id: yourEFSsystemid
aws.region: regionyourEFSisin
provisioner.name: example.com/aws-efs
---
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
name: efs-provisioner
spec:
replicas: 1
strategy:
type: Recreate
template:
metadata:
labels:
app: efs-provisioner
spec:
containers:
- name: efs-provisioner
image: quay.io/external_storage/efs-provisioner:latest
env:
- name: FILE_SYSTEM_ID
valueFrom:
configMapKeyRef:
name: efs-provisioner
key: file.system.id
- name: AWS_REGION
valueFrom:
configMapKeyRef:
name: efs-provisioner
key: aws.region
- name: PROVISIONER_NAME
valueFrom:
configMapKeyRef:
name: efs-provisioner
key: provisioner.name
volumeMounts:
- name: pv-volume
mountPath: /persistentvolumes
volumes:
- name: pv-volume
nfs:
server: yourEFSsystemID.efs.yourEFSregion.amazonaws.com
path: /
---
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: aws-efs
provisioner: example.com/aws-efs
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: efs
annotations:
volume.beta.kubernetes.io/storage-class: "aws-efs"
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Mi
如需更多解释和详细信息,请访问https://github.com/kubernetes-incubator/external-storage/tree/master/aws/efs
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)