首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS EKS Fargate -无法用状态集挂载EFS卷

AWS EKS Fargate -无法用状态集挂载EFS卷
EN

Stack Overflow用户
提问于 2021-12-12 11:21:31
回答 1查看 927关注 0票数 2

我想在AWS中运行一个statefulSet,并在其中附加一个EFS卷,但是我在用pod安装卷时遇到了错误。这些是我从描述豆荚中得到的错误。

代码语言:javascript
复制
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason          Age                From               Message
  ----     ------          ----               ----               -------
  Normal   LoggingEnabled  114s               fargate-scheduler  Successfully enabled logging for pod
  Normal   Scheduled       75s                fargate-scheduler  Successfully assigned default/app1 to fargate-10.0.2.123
  Warning  FailedMount     43s (x7 over 75s)  kubelet            MountVolume.SetUp failed for volume "efs-pv" : rpc error: code = Internal desc = Could not mount "fs-xxxxxxxxxxxxxxxxx:/" at "/var/lib/kubelet/pods/b799a6d6-fe9e-4f80-ac2d-8ccf8834d7c4/volumes/kubernetes.io~csi/efs-pv/mount": mount failed: exit status 1
Mounting command: mount
Mounting arguments: -t efs -o tls fs-xxxxxxxxxxxxxxxxx:/ /var/lib/kubelet/pods/b799a6d6-fe9e-4f80-ac2d-8ccf8834d7c4/volumes/kubernetes.io~csi/efs-pv/mount
Output: Failed to resolve "fs-xxxxxxxxxxxxxxxxx.efs.us-east-1.amazonaws.com" - check that your file system ID is correct, and ensure that the VPC has an EFS mount target for this file system ID.
See https://docs.aws.amazon.com/console/efs/mount-dns-name for more detail.
Attempting to lookup mount target ip address using botocore. Failed to import necessary dependency botocore, please install botocore first.
Warning: config file does not have fall_back_to_mount_target_ip_address_enabled item in section mount.. You should be able to find a new config file in the same folder as current config file /etc/amazon/efs/efs-utils.conf. Consider update the new config file to latest config file. Use the default value [fall_back_to_mount_target_ip_address_enabled = True].

如果有人安装了efs卷,请看一看。我真的很长时间都陷进去了。

我所设置的

Volume

  • CSIDriver
  • 创建了EFS对象

代码语言:javascript
复制
apiVersion: storage.k8s.io/v1beta1
kind: CSIDriver
metadata:
  name: efs.csi.aws.com
spec:
  attachRequired: false

  • 存储类

代码语言:javascript
复制
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: efs-sc
provisioner: efs.csi.aws.com

  • PersistentVolume

代码语言:javascript
复制
apiVersion: v1
kind: PersistentVolume
metadata:
  name: efs-pv
spec:
  capacity:
    storage: 5Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  storageClassName: efs-sc
  csi:
    driver: efs.csi.aws.com
    volumeHandle: <EFS filesystem ID>

  • PersistentVolumeClaim

代码语言:javascript
复制
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: efs-claim
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: efs-sc
  resources:
    requests:
      storage: 5Gi

Configuration

  • Pod

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  name: app1
spec:
  containers:
  - name: app1 
    image: busybox 
    command: ["/bin/sh"] 
    args: ["-c", "while true; do echo $(date -u) >> /data/out1.txt; sleep 5; done"]
    volumeMounts:
    - name: persistent-storage
      mountPath: /data
  volumes:
  - name: persistent-storage
    persistentVolumeClaim:
      claimName: efs-claim
EN

回答 1

Stack Overflow用户

发布于 2021-12-16 07:09:04

一天后,我和你有同样的问题,从那以后,我一直在不停地处理错误!您检查过以确保您的VPC启用了DNS主机名吗?这就是帮我修好它的原因。

只是一个FYI,如果您正在使用fargate,并且想要更改它--我必须在更改DNS主机名标志之后删除整个集群,以使更改得以传播。我不确定您是否熟悉普通ec2实例的DHCP选项,但通常需要更新ipconfig来强制标志传播,但由于fargate是一个托管系统,所以无法从节点本身找到这样做的方法。我创建了另一个帖子here试图回答这个问题。

另一个快速的FYI:如果您的pod执行角色无法访问EFS,您将需要添加一个允许访问的策略(我暂时使用了默认的AmazonElasticFileSystemFullAccess角色,以使其正常工作)。再一次,如果您还没有这样做,您将不得不重新启动整个集群,以便使此角色更改能够传播!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70323093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档