将 EFS 卷附加到 Kubernetes Pod 时遇到问题

2023-11-27

我在 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]
卷“pv-volume”的 MountVolume.SetUp 失败:安装失败:退出状态 32


AWS EFS 使用 NFS 类型卷插件,并且按照Kubernetes 存储类NFS 卷插件不像 EBS 那样附带内部 Provisioner。

所以步骤将是:

  1. 为 NFS 卷插件创建外部 Provisioner。
  2. 创建存储类。
  3. 创建一卷声明。
  4. 在部署中使用卷声明。

    • 在 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

如需更多解释和详细信息,请访问https://github.com/kubernetes-incubator/external-storage/tree/master/aws/efs

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 EFS 卷附加到 Kubernetes Pod 时遇到问题 的相关文章

随机推荐

  • Flutter 用于 Web Cookie/令牌会话和身份验证

    我正在开发一个全栈应用程序 使用NodeJS 和 Flutter Web 版 目前我不明白如何制作安全 cookie 令牌会话 我需要的答案是如何使用 Flutter For Web 制作一个身份验证系统就像其他社交网络或 Stackove
  • Maven 编译错误。执行javac失败,但无法解析错误:javac: invalid flag: -s

    尝试执行 mvn clean install 时出现编译错误 ERROR COMPILATION ERROR INFO ERROR Failure executing javac but could not parse the error
  • 内部错误(javaClasses.cpp:129)

    我正在尝试在 Eclipse 上使用 JUnit 4 和 Robolectric 运行测试 但我一直收到此错误 Invalid layout of java lang String at value A fatal error has be
  • 如果矩阵中单个作业失败,则将 GitHub 操作工作流程标记为失败

    运行 GitHub Actions 矩阵工作流程时 我们如何允许作业失败 继续运行所有其他作业 并将工作流程本身标记为失败 在此图中 您可以看到即使作业失败后工作流程也会通过 在这种情况下 我们需要将工作流程标记为失败 这是我的工作流程 y
  • 多个 mongoose 预保存中间件

    我想对单个模式使用多个预保存猫鼬中间件 这可能吗 Example var schema new Schema schema pre save function next do stuff next schema pre save funct
  • 具有 2 个主键字段的 JPA 表

    我有一个只包含 2 个字段的表 该表有一个由这两个字段组成的复合PK 当使用 Netbeans 从数据库创建实体 bean 时 实体 bean 不会像其他具有 2 个以上字段的表那样自动创建 所以我想我需要自己创建实体bean 创建此实体
  • 直接调用全局安装的Node.js模块

    假设我想为 Node js 编写一个要全局安装的模块 我不想编写任何 C 或其他东西 而是编写普通的 Node js 代码 基本上 这很容易 只需编写模块 然后使用安装即可npm install g 现在 大多数全局安装的模块都提供了直接调
  • elm 生成随机数

    我想在 elm 中的两个值之间生成一个随机 int 像这样的东西 nb random 0 10 我已阅读该文档和多篇文章 最好的答案来自这个 stackoverflowpost gen Random int 0 10 seed0 Rando
  • iOs 中 HTML5 音频元素的持续时间值存在问题

    我正在为 iOs 设备开发一个网络应用程序 但 html5 音频标签有问题 我设计了一个自定义音频播放器 并使用 JavaScript 函数控制歌曲 在 safari 桌面版上 该应用程序运行良好 但在 safari 移动版上 它无法识别音
  • 如何更改JFreeChart饼图颜色?

    如何自定义 JFreeChart 图形的颜色 让我们看看我的java代码 private StreamedContent chartImage public void init JFreeChart jfreechart ChartFact
  • Swift,与方法名相同的变量

    我有一个 var formVC UIViewController 我还试图有一个名为 func formVC gt UIViewController 我知道它在 OBJC 中有效 但我没有看到在 Swift 中做到这一点的方法 有没有办法解
  • ActionBarActivity 和 Fragment Activity 的区别

    我是 Android 菜鸟 我刚开始使用ActionBarActivity over FragmentActivity 他们之间有什么区别吗 FragmentActivity是基于支持的片段的基类 所以你将使用Fragment来自 API
  • 在 vue 3 中导入 bootstrapVue

    您好 我尝试在我的 vue 3 应用程序中使用 bootstrapVue 和 typescript 这里是我的 main ts import createApp from vue import App from App vue import
  • R 与其他非 Java 语言的接口/将 R 编译为可执行文件

    我开发了一个与数据库一起使用的 R 脚本 进行一系列处理并输出图形和表格 我可以将该数据输出为逗号分隔值和图片 以便稍后将它们导入到我的软件中 这没有问题 问题是如何分发我的应用程序而无需在客户端上完整安装 R 我见过 RJava 之类的东
  • Xcode 针对不同目标使用不同资源

    我正在开发一个 iPhone 应用程序 该应用程序将有完整版和精简版 为了从相同的源代码和 Xcode 项目中获取这两个包 我向 Xcode 项目添加了另一个目标 现在 我想让 Lite 目标仅将资源文件的子集复制到捆绑包中 但是 Xcod
  • 如何提取图像中的白色区域

    我有一个像这样的示例图像 我正在寻找一种方法来消除图像中的噪声 这样我最终会得到一个在白色背景上只有黑色文本的图像 以便我可以将其发送到超立方体 我尝试过变形 kernel np ones 4 4 np uint8 opening cv2
  • C# 获取列表中的非重复项[重复]

    这个问题在这里已经有答案了 有了这样的列表 int numbers 1 2 2 3 3 4 4 5 我可以使用 Distinct 函数删除重复项 因此列表将显示 1 2 3 4 5 然而 我想要相反的 我希望它删除所有重复的数字 留下唯一的
  • 获取标题不完全已知的窗口的句柄。 (C#)

    标题是部分静态的 带有可变后缀 例如 窗口标题 user id 在不知道确切标题的情况下如何获取句柄 查看所有进程并检查主窗口标题 您可以使用正则表达式 或者StartsWith etc foreach Process proc in Pr
  • Linq If 语句

    我如何在 linq toEntity 中写这样的东西 sb Append WHERE question question isdeleted 0 if catid 0 sb AppendFormat AND CatID IN 0 catsS
  • 将 EFS 卷附加到 Kubernetes Pod 时遇到问题

    我在 AWS EKS 上的 kubernetes 集群的帮助下运行我的 docker 容器 我的两个 docker 容器正在使用共享卷 并且这两个容器都在两个不同的 pod 内运行 所以我想要一个可供 aws 上的两个 Pod 使用的通用卷