向 Kubernetes 上的 CoreDNS 服务添加一条简单的 A 记录

2024-01-03

问题是这样的: 我们有几个 microk8s 集群运行在不同的网络上;但每个人都可以访问我们的 NAS 所在的存储网络。

在 Kubernetes 中,我们使用 nfs-provisioner (nfs-externalsubdir) 创建磁盘。有些磁盘是使用指定的 NAS 服务器的 IP 创建的。 当我们需要更改IP时,我们发现磁盘与IP绑定了,更改IP意味着在其中创建新的存储资源。

为了避免这种情况,我们希望能够在 Kubernetes 集群级别设置 DNS 记录,以便我们可以使用 nfs 配置程序基于名称而不是 IP 创建存储资源,并且我们可以在需要时更改 DNS 记录(当例如,我们升级或迁移外部 NAS 设备) 例如,我想告诉每个 microk8s 环境:

192.168.1.4 my-nas.mydomain.local

...就像我在 /etc/hosts 文件中一样。

有没有正确的方法来实现这一目标? 我尝试遵循此链接上的建议:有没有办法向 kube-dns 添加任意记录? https://stackoverflow.com/questions/37166822/is-there-a-way-to-add-arbitrary-records-to-kube-dns(答案被赞成 15 次,集群部分),重新启动部署,但它不起作用

我无法使用 hostAliases 功能,因为我们使用的每个图表上并未提供该功能,这就是我正在寻找更全局的解决方案的原因。

此致,


...we could create storage resources with the nfs provisionner based on a name an not an IP, and we could alter the DNS record when needed...

为此,您可以尝试无头服务而不接触 coreDNS:

apiVersion: v1
kind: Service
metadata:
  name: my-nas
  namespace: kube-system  # <-- you can place it somewhere else
  labels:
    app: my-nas
spec:
 ports:
 - protocol: TCP
   port: <nas port>
---
apiVersion: v1
kind: Endpoints
metadata:
  name: my-nas
subsets: 
- addresses:
  - ip: 192.168.1.4
  ports:
  - port: <nas port>

将其用作:my-nas.kube-system.svc.cluster.local

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

向 Kubernetes 上的 CoreDNS 服务添加一条简单的 A 记录 的相关文章

随机推荐

  • 带有 ToggleButtons JavaFX 的 ToggleGroup

    如何取消全部选择ToggleButtons in a ToggleGroup在 JavaFX 中 似乎没有一个clearSelection 类似于 Swing 中的功能 你可以做 toggleGroup selectToggle null
  • 拆分有 2 个相似单词的句子

    我需要将句子中的单词分开 但这里有一些问题 word list1 lt c rose location criminal lotus check sing single 如果你看上面的代码 sing 和 single 是我列表中的两个词 现
  • 詹金斯 - 让代理等待其他代理完成

    我是詹金斯的新手 我正在尝试设置一个将使用很少构建执行器的项目 流程如下 两个构建执行器webservice标签返回其 IP 地址并等待第三个构建执行器完成其工作 第三个构建执行器tester标签收集这些 IP 地址并执行一些长时间运行的作
  • Laravel 5.1 - 调用未定义的方法 Illuminate\View\Compilers\BladeCompiler::createPlainMatcher()

    尝试将我的项目从 L5 升级到 L5 1 但不兼容 调用未定义的方法 Illuminate View Compilers BladeCompiler createPlainMatcher 这是导致异常的代码 Blade extend fun
  • Objective-C 整数运算

    我正在尝试在 iPhone 应用程序中计算一些数字 int i 12 int o 60 i 50 1000 在本例中 我希望 o 为 100 即毫秒 但如 NSLog d o 显示的那样 它等于 0 这也等于 0 int o 60 i 50
  • nuget pack [someProject.csproj] 不允许我更改标题或描述

    我知道如果我在包中指定 nuspec 我可以更改作者和描述 即nuget pack someSpec nuspec 但我希望我的项目成为 事实的唯一来源 不幸的是 我似乎无法通过命令行开关更改标题 描述 作者 我想这会起作用 nuget p
  • 为什么单击按钮时对象不移动?

    单击按钮时对象不会移动 为什么会这样呢 function animate var object document getElementById object style var x 100 object left x px object p
  • .php 文件的字符编码错误

    为 MarkersController php 创建了一条返回 json 的路线 但是当我导航到该路线时 出现以下错误 HTML 文档的字符编码未声明 如果文档包含 US ASCII 范围之外的字符 则在某些浏览器配置中 该文档将呈现为乱码
  • 使用 RegExp 匹配括号数字然后递增它

    我一直在尝试找到一种方法来匹配 Javascript 字符串中的数字 该数字在字符串末尾用括号括起来 然后递增它 假设我有一个字符串 var name Item Name 4 我需要一个 RegExp 来匹配 4 部分 然后我需要增加 4
  • 如何在angularjs中重新定义模块?

    我希望我可以在引导后将一个模块附加到主模块 我发现这个问题 https github com angular angular js issues 3881 https github com angular angular js issues
  • p:commandButton 渲染属性在 ajax 更新后不起作用 (Primefaces 3.5)

    我多次收到我的代码 但没有发现有关它的问题 我对 p commandButton 呈现的属性有疑问 即使 getter 方法返回 false p commandButton 也始终显示 这是在 ajax 更新后发生的 我有一个带有 p aj
  • 如何在 Rust 中对字符串进行大小写折叠?

    我正在编写一个简单的全文搜索库 需要大小写折叠来检查两个单词是否相等 对于此用例 现有的 to lowercase https doc rust lang org std primitive str html method to lower
  • 将 Visual Studio 2010 Professional 连接到 TFS

    是否可以将 Visual Studio 2010 专业版连接到 TFS Codeplex 上托管的项目 这表明它不包含在专业版中 http www microsoft com visualstudio en us products http
  • 如何使用 ionic-cli 通过 Crosswalk lite 构建 android?

    当我使用 Crosswalk 编译 APK 时 ionic browser add crosswalk ionic build android 大小太大 20 MB 我认为使用 crosswalk lite 会减少编译后的 APK 的大小
  • 使用 AsyncTask 在后台服务中添加 Android 进度对话框,出现致命异常

    我正在打电话异步任务从预定服务每 10 分钟运行一次 运行服务时 进度对话框从以下位置获取异常预执行 ERROR FATAL EXCEPTION main android view WindowManager BadTokenExcepti
  • C# - 比较两个 CSV 文件并给出输出

    需要一些帮助 我有两个信息源 并且这些信息由不同的程序导出到两个不同的 CSV 文件 它们应该包含相同的信息 但这正是需要检查的内容 因此我想做的事情如下 从两个文件中获取信息 Compare 输出任何差异以及差异所在的文件 例如文件 A
  • 使用 cypress 上传/导入 Excel 文件

    I ve a UI similar to 我需要将已放置在固定文件夹中的 xlsx 文件上传到应用程序中 有什么建议如何使用 cypress 来做到这一点吗 这是我发现的解决方案 安装 cypress 文件上传 npm install sa
  • 什么时候使用多线程?

    什么时候在应用程序中使用线程 例如 在简单的 CRUD 操作中 使用 smtp 如果服务器面临带宽问题 则调用可能需要一些时间的 Web 服务等 老实说 我不知道如何确定是否需要使用线程 我知道一定是当我们期望某个操作需要一些时间才能完成时
  • 根据条件计算项目

    商店的初始状态是 let initialState items itemsCount 0 completedCount 0 当我使用以下类型发送操作时ADD ITEM新项目被添加到items数组和itemsCount是递增的 虽然我不确定我
  • 向 Kubernetes 上的 CoreDNS 服务添加一条简单的 A 记录

    问题是这样的 我们有几个 microk8s 集群运行在不同的网络上 但每个人都可以访问我们的 NAS 所在的存储网络 在 Kubernetes 中 我们使用 nfs provisioner nfs externalsubdir 创建磁盘 有