我确实需要为特定应用设置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