kubernetes - K8s/Kubernetes CoreDNS - 添加额外的 SRV 或 A 记录(手动)
问题描述
我确实需要为特定应用程序设置 SRV 条目。
我正在运行一个启用了 coredns 和 kubernetes 插件的 kubernetes 集群。按照标准,coredns 在 coredns 数据库中创建一个 SRV 条目。
SRV 记录
K8s服务
apiVersion: v1
kind: Service
metadata:
labels:
run: pod-nginx
name: svc-nginx
namespace: default
spec:
ports:
- name: test
nodePort: 31985
port: 80
protocol: TCP
targetPort: 80
selector:
run: pod-nginx
type: LoadBalancer
名称解析
我能够从 DNS 查询中得到答案。
root@test:/# dig -t srv _test._tcp.svc-nginx.default.svc.cluster.local
; <<>> DiG 9.16.1-Ubuntu <<>> -t srv _test._tcp.svc-nginx.default.svc.cluster.local
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28386
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 66150d8a64d0f92b (echoed)
;; QUESTION SECTION:
;_test._tcp.svc-nginx.default.svc.cluster.local. IN SRV
;; ANSWER SECTION:
_test._tcp.svc-nginx.default.svc.cluster.local. 5 IN SRV 0 100 80 svc-nginx.default.svc.cluster.local.
;; ADDITIONAL SECTION:
svc-nginx.default.svc.cluster.local. 5 IN A 192.168.200.88
;; Query time: 4 msec
;; SERVER: 192.168.200.2#53(192.168.200.2)
;; WHEN: Wed Aug 12 07:23:48 UTC 2020
;; MSG SIZE rcvd: 239
不幸的是,我确实需要另一个 SRV 字符串,因为应用程序需要不同的 SRV 分辨率。我无法编辑应用程序以适应自动创建的 SRV 字符串。
如何手动将 SRV 整体添加到 coreDNS 中?
当前的 SRV 记录:
_test._tcp.svc-nginx.default.svc.cluster.local. 5 IN SRV 0 100 80 svc-nginx.default.svc.cluster.local.
预期的 SRV 记录:
_test._tcp.default.svc.cluster.local. 86400 IN SRV 0 0 80 svc-nginx.default.svc.cluster.local.
一个记录
如何手动将 A 记录添加到 coreDNS?我不想使用“重写插件”或“k8s_external 插件”
当前A记录:
svc-nginx.default.svc.cluster.local. 5 IN A 192.168.200.88
预期的 SRV 记录:
myapp.cluster.local. 5 IN A 192.168.200.88
解决方案
推荐阅读
- ansible - 有没有办法将复杂(嵌套)变量放入 ansible 库存中
- dependency-injection - NestJS动态模块中始终未定义“请求”对象
- python - 使用python在数据库中存储动态列表/数组
- javascript - “解析错误:类型转换表达式应该用括号括起来”与 React Hooks
- maven - 为什么 Intelli J Idea 社区版 19.2.1 没有在 maven respotory 上显示任何内容?
- azure-cosmosdb - 如何使用 Table API 通过 ARM 设置 Cosmos DB 帐户级别 RU
- javascript - 如何将输入的信息输入预先编写的报价集?
- c# - MailKit IMAP Idle - How to access 'done' CancellationTokenSource in CountChanged Event
- javascript - 单击 TD 内的“OnClick”函数时使用 jQuery 获取最近的 TR?
- arm - ARM Cortex-M4处理器中SDIV和UDIV的划分?