Как выставить сервис 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: {}

Ответы на вопрос(1)

Ваш ответ на вопрос