Как выставить сервис kube-dns для запросов вне кластера?
Я пытаюсь сделать так, чтобы сервис "kube-dns" был доступен для запроса вне кластера Kubernetes. Чтобы сделать это, я отредактировал определение «Сервис», чтобы изменить «тип» с «ClusterIP» на «NodePort», который, казалось, работал нормально.
Тем не менее, когда я пытаюсь сделать запрос на порт узла, я могу получить сеанс TCP (тестирование с помощью Telnet), но не могу получить ответ от DNS-сервера (тестирование с помощью dig).
Я просматривал логи каждого из контейнеров на модуле "kube-dns", но ничего не вижу. Кроме того, запрос 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: {}