Pru*_*raj 5 amazon-ec2 amazon-web-services docker kubernetes amazon-efs
我在 AWS EKS 上的 kubernetes 集群的帮助下运行我的 docker 容器。我的两个 docker 容器正在使用共享卷,并且这两个容器都在两个不同的 pod 中运行。所以我想要一个可以被 aws 上的两个 Pod 使用的公共卷。
我创建了一个 EFS 卷并安装。我正在按照链接创建PersistentVolumeClaim. 但是当efs-providerpod 尝试附加已安装的 EFS 卷空间时出现超时错误。VolumeId,区域仅正确。
Pod 的详细错误消息描述:
等待卷为 pod“default”/“efs-provisioner-55dcf9f58d-r547q”附加或挂载的超时超时。卸载卷列表=[pv-volume]。未附加卷列表=[pv-volume default-token-lccdw]
MountVolume.SetUp 卷“pv-volume”失败:挂载失败:退出状态 32
AWS EFS 使用 NFS 类型卷插件,并且根据 Kubernetes 存储类, NFS 卷插件不附带 EBS 等内部配置程序。
所以步骤将是:
在部署中使用卷声明。
在 configmap 部分中,更改 file.system.id: 和 aws.region: 以匹配您创建的 EFS 的详细信息。
在部署部分中,将 server: 更改为您创建的 EFS 的 DNS 端点。
---
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
Run Code Online (Sandbox Code Playgroud)
有关更多说明和详细信息,请访问https://github.com/kubernetes-incubator/external-storage/tree/master/aws/efs
| 归档时间: |
|
| 查看次数: |
5997 次 |
| 最近记录: |