我正在尝试公开“kube-dns”服务,以便在 Kubernetes 集群之外进行查询。为了做到这一点,我编辑了“服务”定义,将“类型”从“ClusterIP”更改为“NodePort”,这似乎工作正常。
但是,当我尝试在节点端口上查询时,我能够获得 TCP 会话(使用 Telnet 测试),但似乎无法从 DNS 服务器获得任何响应(使用 dig 测试)。
我查看了“kube-dns”Pod 上每个容器的日志,但看不到任何不愉快的地方。此外,从集群内(从正在运行的容器)查询 DNS 似乎没有任何问题。
有没有人尝试过暴露 kube-dns 服务?如果是这样,是否有任何额外的设置步骤或者您对我有任何调试建议?
服务定义如下:
$ kubectl get service kube-dns -o yaml --namespace kube-system
apiVersion: v1
kind: Service
metadata:
...
spec:
clusterIP: 10.0.0.10
ports:
- name: dns
nodePort: 31257
port: 53
protocol: UDP
targetPort: 53
- name: dns-tcp
nodePort: 31605
port: 53
protocol: TCP
targetPort: 53
selector:
k8s-app: kube-dns
sessionAffinity: None
type: NodePort
status:
loadBalancer: {}