我在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
2 回答
AWS EFS使用NFS类型卷插件,并且根据Kubernetes Storage Classes NFS卷插件不附带内部Provisioner,如EBS .
所以步骤将是:
为NFS卷插件创建外部Provisioner .
创建存储类 .
创建一个卷声明 .
在部署中使用卷声明 .
在configmap部分中,更改file.system.id:和aws.region:以匹配您创建的EFS的详细信息 .
在部署部分中,将服务器:更改为您创建的EFS的DNS endpoints .
---
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
问题是,我有2个ec2实例正在运行,但我将EFS卷安装到只有一个ec2实例,而kubectl总是在没有安装卷的ec2实例上部署pod . 现在我将相同的音量安装到两个实例上并使用PVC,PV如下所示 . 它工作正常 .
ec2安装:AWS EFS mounting with EC2
PV.yml
PVC.yml
replicaset.yml
-----只有卷节-----