Kubernetes,无法通过 DNS 挂载 NFS 共享

2024-02-16

我正在尝试通过 DNS 查找在我的容器中安装 NFS 共享(k8s 集群外部),我的配置如下

apiVersion: v1
kind: Pod
metadata:
  name: service-a
spec:
  containers:
  - name: service-a
    image: dockerregistry:5000/centOSservice-a
    command: ["/bin/bash"]
    args: ["/etc/init.d/jboss","start"]
    volumeMounts:
      - name: service-a-vol
        mountPath: /myservice/por/data
  volumes:
    - name: service-a-vol
      nfs:
        server: nfs.service.domain
        path: "/myservice/data"
  restartPolicy: OnFailure 

nslookup 的nfs.service.domin在我的容器中工作正常。这是通过以下方式实现的StubDomain。但是,在创建容器时,它无法解析 nfs 服务器。错误:

Warning  FailedMount  <invalid>  kubelet, worker-node-1  MountVolume.SetUp failed for volume "service-a-vol" : mount failed: exit status 32
Mounting command: systemd-run
Mounting arguments: --description=Kubernetes transient mount for /var/lib/kubelet/pods/44aabfb8-2767-11e8-bcf9-fa163ece9426/volumes/kubernetes.io~nfs/service-a-vol --scope -- mount -t nfs nfs.service.domain:/myservice/data /var/lib/kubelet/pods/44aabfb8-2767-11e8-bcf9-fa163ece9426/volumes/kubernetes.io~nfs/service-a-vol
Output: Running scope as unit run-27293.scope.
mount.nfs: Failed to resolve server nfs.service.domain: Name or service not known
mount.nfs: Operation already in progress

如果我修改server: nfs.service.domain to server: 10.10.1.11这很好用!所以总结一下

  1. 服务的 DNS 解析工作正常
  2. 通过 DNS 解析挂载不会
  3. 通过特定 IP 地址安装有效
  4. 我努力了Headless Service而不是 StubDomain 但存在同样的问题

非常感谢任何帮助

Update 1:如果我在工作节点/主节点的 /etc/hosts 文件中添加一个条目10.10.1.11 nfs.service.domain然后是我上面的配置server: nfs.service.domain作品。这显然不是一个理想的解决方法......


正如 @Giorgio Cerruti 所指出的,并在这张 github 票证 https://github.com/kubernetes/kubernetes/issues/44528/除其他外,这目前是不可能的,因为节点需要能够解析 DNS 条目,但它无法解析 kube-dns。两种可能的解决方案是:

  1. Update /etc/hosts每个 kubernetes 节点解析 NFS 端点(根据上面的更新)。这是一个原始的解决方案。
  2. 对此 NFS 服务和同一域(如 NFS)中的任何其他远程服务有效的更强大的修复是将远程 DNS 服务器添加到 kubernetes 节点resolv.conf

    someolddomain.org service.domain xx.xxx.xx nameserver 10.10.0.12 nameserver 192.168.20.22 nameserver 8.8.4.4

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

Kubernetes,无法通过 DNS 挂载 NFS 共享 的相关文章

  • kubectl:描述与获取 -o <格式>

    在 kubectl 中 两者describe and get o
  • 跨命名空间共享秘密

    有没有办法在 Kubernetes 中跨命名空间共享秘密 我的用例是 我的所有命名空间都有相同的私有注册表 并且我想避免为每个命名空间创建相同的秘密 秘密 API 对象驻留在命名空间中 它们只能由同一命名空间中的 pod 引用 基本上 您必
  • 如何找出 Kubernetes 中可用的端口?

    我想在 kubernetes 集群中的不同端口上运行多个服务 并且想知道如何检查哪些端口可用并且不会与我的服务产生任何冲突 我还想知道每个端口上的服务名称 以便我可以更好地理解我的配置 有类似的问题涉及验证哪个NodePorts已经在使用中
  • 多个 nginx 入口重写的默认路径

    这是我的情况 我在 kubernetes 入口 上 有两个 docker 镜像 一个专用于 Web 第二个专用于 api 在下一个配置下 在消息末尾 web将显示将进行一些调用的前端 api 那里一切都好 but 是 404 因为没有定义任
  • Kubernetes:无法创建存储库

    我正在跟进Kubernetes 入门指南 http kubernetes io docs hellonode 一切都很顺利 直到我跑步 gcloud docker push gcr io
  • 使用 zeppelin 在 kubernetes 上 Spark

    我按照本指南在使用 minikube 设置的本地 kubernetes 集群中运行 zeppelin 容器 https zeppelin apache org docs 0 9 0 SNAPSHOT quickstart kubernete
  • Kubernetes - 向 kube dns 中的匿名用户授予 RBAC 访问权限

    我有一个带有主节点和工作节点的 Kubernetes 集群设置 Kubectl cluster info 显示 kubernetes master 以及 kube dns 成功运行 我正在尝试访问下面的 URL 因为它是我的组织内部的 所以
  • 一个持久卷是否可以被多个持久卷声明消耗?

    假设一个 PV 可以被多个 PVC 消耗并且每个 pod 实例需要一个 PVC 绑定 这样的假设是否正确 我这么问是因为我创建了一个 PV 然后创建了一个具有不同尺寸要求的 PVC 例如 kind PersistentVolume apiV
  • 通过 nginx 入口控制器进行基本身份验证

    我正在使用 nginx 入口控制器 https kubernetes github io ingress nginx deploy https kubernetes github io ingress nginx deploy 在 AWS
  • gwt hibernate 程序中的异常

    我正在尝试制作一个简单的 GWT RPC Hibernate 程序 将用户添加到 MySQL 数据库 我正在使用 Eclipse EE 该应用程序已成功将用户添加到数据库 但在编译时引发异常 这是我的应用程序的例外情况和来源 例外 Exce
  • 在 Kubernetes/Openshift 中将客户端-服务器流量保持在同一区域的最佳方法?

    我们运行兼容 Kubernetes OKD 3 11 的本地 私有云集群 其中后端应用程序与用作缓存和 K V 存储的低延迟 Redis 数据库进行通信 新的架构设计将在两个地理上分布的数据中心 区域 之间平均划分工作节点 我们可以假设节点
  • 使大型静态数据文件可供 kubernetes pod 使用

    我有一些相当大的 UTF 8 数据文件 pod 需要在启动时加载到内存中 从几百 KB 到大约 50 MB 该项目 包括 helm 图表 是开源的 但其中一些文件不是开源的 否则我可能只会将它们包含在图像中 我最初的想法是创建配置映射 但我
  • 在容器中运行多个相似的进程有意义吗?

    提供有关该问题的背景的简要背景 目前 我和我的团队正在将微服务迁移到 k8s 以减少维护多个部署工具和管道的工作量 我们计划迁移的微服务之一是 ETL Worker 它监听 SQS 上的消息并执行多阶段处理 它是使用 PHP Laravel
  • 如何从 Kubernetes 服务背后的 HTTP 请求读取客户端 IP 地址?

    我的 Web 应用程序作为 Kubernetes pod 在 SSL 的 nginx 反向代理后面运行 代理和我的应用程序都使用 Kubernetes 服务进行负载平衡 如所述here http blog kubernetes io 201
  • kubernetes/openshift 中的请求与限制 cpu

    我在为 Openshift 中的 pod 选择正确的请求和限制设置时遇到一些困境 一些数据 在启动期间 应用程序需要至少 600 毫核才能在 150 秒内完成就绪检查 启动后 200 毫核应该足以让应用程序保持空闲状态 所以我从文档中的理解
  • 入口和 SSL 直通

    我最近一直在使用 nginxdemo nginx ingress 控制器 据我了解 该控制器无法执行 SSL 直通 我的意思是 将客户端证书一直传递到后端服务进行身份验证 因此我一直通过标头传递客户端主题 DN 最终 我更喜欢 SSL 直通
  • Google Kubernetes Engine 中的存储 ReadWriteMany

    有没有一种方法能够提供 ReadWriteMany 存储而无需实现存储集群 我能够使用 gcsfuse 提供存储 但速度非常慢 我需要接近 GlusterFS 速度的东西 我目前正在使用 GlusterFS 另一种选择 Google Clo
  • 如何为某些节点分配命名空间?

    有什么办法可以配置吗nodeSelector在命名空间级别 我只想在此命名空间的某些节点上运行工作负载 为了达到这个目的 你可以使用PodNodeSelector准入控制器 首先 您需要在您的kubernetes apiserver Edi
  • Kubernetes Ingress 在 nginx 反向代理后面运行

    我已经在可以从互联网访问的服务器上安装了 minikube 我创建了一个可用的 kubernetes 服务 gt kubectl get service myservice NAME CLUSTER IP EXTERNAL IP PORT
  • 如何防止两个卷声明在 Kubernetes 上声明同一个卷?

    在 GKE 上的 Kubernetes 集群上 我有以下持久卷声明 PVC kind PersistentVolumeClaim apiVersion v1 metadata name registry spec accessModes R

随机推荐

  • Heroku:SSL 未启用

    所以我的 Rails 3 2 1 应用程序在 Heroku 上运行良好 然后我设置config force ssl true在我的生产配置文件中 打开文件后 我现在收到 SSL 未启用 错误 我以为 Heroku 允许你附带他们的 SSL
  • Powershell 字节数组到 INT

    我有一个包含两个值的字节数组 07 and DE 十六进制 我需要做的是以某种方式连接07DE并从该十六进制值获取十进制值 在这种情况下 它是2014 My code This line gives 11 bytes worth of in
  • 如何使用 Raphael.js 旋转 div?

    我是 Raphael 的新手 我真的很困惑 我想使用 Raphael 的按钮来旋转 div 及其内容 理想情况下 我希望有一个平滑的动画 当单击按钮时 动画从 0 度到 90 度 然后当再次单击按钮时 动画将反转 我想我会更改鼠标单击时的
  • 使用 jQuery 的延迟链接 ajax 请求

    我有一个网络应用程序必须多次调用服务器 到目前为止 我有一个很长的嵌套回调链 但我想使用 jQuerywhen then等功能 但是 使用后我似乎无法让东西再次运行then when get pages run tool html then
  • Objective-C 中的“超级”是什么? (自我!=超级)?

    我已阅读下面的问题和故事SEEMS simple Objective C 中的 super 到底是什么 https stackoverflow com questions 3095360 what exactly is super in o
  • 在存储过程中创建临时表

    我正在为 MySQL 编写第一个存储过程 存储过程需要创建一个临时表 然后向其中插入一些数据 如果我在存储过程之外手动创建一个普通表 那么存储过程不会创建临时表 存储过程将被创建并完全按照我的要求执行 如果我随后将创建临时表添加到存储过程中
  • Java 和 C# 正则表达式兼容吗?

    这两种语言都声称使用 Perl 风格的正则表达式 如果我用一种语言测试正则表达式的有效性 它在另一种语言中是否有效 正则表达式语法有何不同 这里的用例是一个 C NET UI 与最终的 Java 后端实现对话 该实现将使用正则表达式来匹配数
  • symfony2 按属性对对象集合进行排序

    我有这个实体 class Categoria ORM Id ORM Column type integer ORM GeneratedValue protected id ORM Column type string length 100
  • 尝试在空对象引用上调用虚拟方法“void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)”

    问题如下 我有一个登录活动 在 Android Studio 中 几天前运行良好 我不记得更改过任何内容 但是当我上次运行此应用程序时 应用程序在我单击登录按钮后立即关闭 最后一件事是关于 AsyncTask 预执行的祝酒 我不明白为什么会
  • 使用 google Oauth 2.0 进行身份验证与注册的重定向 URI 不匹配

    我正在尝试使用进行身份验证谷歌 OAuth 2 0 我在中注册了我的网址谷歌云控制台 在谷歌的规格中OAuth 2 0它说 redirect uri 确定响应发送到的位置 该参数的值必须与注册的值之一完全匹配谷歌云控制台 包括 http 或
  • 使用与主用户名不同的 RDS 代理用户连接被拒绝

    我正在尝试设置 RDS 代理来为我的应用程序提供 mysql 数据库服务 大多数应用程序运行时使用的用户名和密码等于 RDS 数据库上设置的主用户名 该用户名和密码具有所有权限 我尝试使用与主用户名不同的用户名和密码访问我的 RDS 实例
  • 如何消除这个错误? java.lang.reflect.InitationTargetException [重复]

    这个问题在这里已经有答案了 我添加了所有需要的权限 PackageManager packageManager context getPackageManager Class
  • @事务和继承

    我曾经添加过 Transactional所有 Spring 服务 类 的注释 然后我想 如果事务行为应该相同 我真的必须这样做吗 当然 如果不应该的话 我们会添加 Transational以及方法的其他参数 我试图找到一些关于继承的有用信息
  • 如何使用 Xunit 2.0 动态跳过测试?

    Xunit 1 9 x 为用户提供了DynamicSkipExample cs https github com xunit xunit blob v1 samples AssertExamples DynamicSkipExample c
  • 如何获取 SLURM 作业所用脚本的原始位置?

    我正在使用脚本启动 SLURM 作业 并且脚本必须根据其在脚本本身内部获取的位置来工作SCRIPT LOCATION realpath 0 但 SLURM 将脚本复制到slurmd文件夹并从那里开始工作 这会搞砸进一步的操作 在移动 复制之
  • 桌面上方的浮动图标

    我正在编写一个 C 应用程序 我希望它在桌面上有一个浮动图标 就像移动设备中的 Facebook Messenger 我一直在互联网上搜索但找不到任何有用的东西 有文章吗 有想法吗 您需要创建一个没有标题栏和边框的表单 并使用图像作为表单的
  • OpenCV中概率霍夫变换的具体实现是什么?

    有谁知道 OpenCV 实现中概率霍夫变换的特定算法吗 我的意思是 有关于该算法的参考论文或文档吗 为了得到这个想法 我当然可以查看源代码 但我想知道是否有任何关于它的文档 它不在源代码的注释中 OpenCV 1 0 谢谢你 Jin Ope
  • 是否需要验证或转义jsonp回调字符串

    我有一个名为 action php 的文件 它将执行一些操作 我想将其公开为纯 JSON 或 JSONP 输出 用户将使用如下 URL 来调用它 action php jsonp callback 在我的action php中我正在做这样的
  • 服务器端对云服务执行多个请求

    我正在编写一个使用多个 Web API 的 Web 应用程序 对于单个用户的单个请求 我的应用程序可能需要对其他站点执行最多 30 个 HTTP 请求 包含网络应用程序的网站可以拥有数百个并发用户 我一直在四处寻找 试图找出应该使用哪个库
  • Kubernetes,无法通过 DNS 挂载 NFS 共享

    我正在尝试通过 DNS 查找在我的容器中安装 NFS 共享 k8s 集群外部 我的配置如下 apiVersion v1 kind Pod metadata name service a spec containers name servic