DNS главного узла Kubernetes не может обнаружить имя службы

У меня есть два узла, ведущий и подчиненный. Они на самом деле работают хорошо, кроме одного. Главный узел не может обнаружить имя службы. Ведомые узлы работают без проблем.

Я установил докер dnstools на обоих узлах. Их файлы /etc/resolv.conf точно такие же.

root@pvgl50934100b:~# kubectl get nodes
NAME                              STATUS   ROLES    AGE   VERSION
my-master   Ready    master   84d   v1.13.2
pvgl50934100b                     Ready    <none>   17h   v1.13.2

root@pvgl50934100b:~# kubectl  get pods -o wide | grep dnstools
dnstools-5c57c4d457-695hs                     1/1     Running   16         16h   10.244.12.13   pvgl50934100b                     <none>           <none>
dnstools-5c57c4d457-fvhts                     1/1     Running   15         15h   10.244.0.125   my-master   <none>           <none>
root@pvgl50934100b:~# kubectl  exec dnstools-5c57c4d457-695hs -- cat /etc/resolv.conf
nameserver 10.244.0.10
search default.svc.cluster.local svc.cluster.local cluster.local
options ndots:5

root@pvgl50934100b:~# kubectl  exec dnstools-5c57c4d457-fvhts -- cat /etc/resolv.conf
nameserver 10.244.0.10
search default.svc.cluster.local svc.cluster.local cluster.local
options ndots:5

Моя конфигурация конечной точки:

- apiVersion: v1
  kind: Endpoints
  metadata:
    creationTimestamp: "2019-01-24T10:05:42Z"
    labels:
      addonmanager.kubernetes.io/mode: Reconcile
      k8s-app: kube-dns
      kubernetes.io/cluster-service: "true"
      kubernetes.io/name: CoreDNS
    name: kube-dns
    namespace: kube-system
    resourceVersion: "9725462"
    selfLink: /api/v1/namespaces/kube-system/endpoints/kube-dns
    uid: 9bc1c68d-1fbf-11e9-a68f-4ccc6a74038f
  subsets:
  - addresses:
    - ip: 10.244.0.124
      nodeName: my-master
      targetRef:
        kind: Pod
        name: coredns-779bd65884-8m4j4
        namespace: kube-system
        resourceVersion: "9725461"
        uid: f2fda560-5ab1-11e9-a68f-4ccc6a74038f
    - ip: 10.244.12.15
      nodeName: pvgl50934100b
      targetRef:
        kind: Pod
        name: coredns-779bd65884-488s2
        namespace: kube-system
        resourceVersion: "9725429"
        uid: eedbd034-5ab1-11e9-a68f-4ccc6a74038f
    ports:
    - name: dns
      port: 53
      protocol: UDP
    - name: dns-tcp
      port: 53
      protocol: TCP

Мой сервис:

kube-dns                NodePort   10.244.0.10      <none>        53:30765/UDP,53:30765/TCP   75d

Результат тестирования dig:

root@pvgl50934100b:~# kubectl  exec dnstools-5c57c4d457-695hs -- dig -t Mx kubernetes

; <<>> DiG 9.11.3 <<>> -t Mx kubernetes
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 12552
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1452
;; QUESTION SECTION:
;kubernetes.            IN  MX

;; AUTHORITY SECTION:
.           30  IN  SOA a.root-servers.net. nstld.verisign-grs.com. 2019040903 1800 900 604800 86400

;; Query time: 137 msec
;; SERVER: 10.244.0.10#53(10.244.0.10)
;; WHEN: Wed Apr 10 02:02:17 UTC 2019
;; MSG SIZE  rcvd: 114

root@pvgl50934100b:~# kubectl  exec dnstools-5c57c4d457-fvhts -- dig -t Mx kubernetes

; <<>> DiG 9.11.3 <<>> -t Mx kubernetes
;; global options: +cmd
;; connection timed out; no servers could be reached
command terminated with exit code 9

Я не уверен, какие еще инструменты или место я могу использовать для проверки конфигурации. Ожидается, что главный узел получит тот же результат, что и ведомый.

Любые предложения/советы будут оценены.

Это очень подозрительно, когда вашему поду на мастере назначается та же подсеть, что и службе DNS kubernetes (10.244.0.125 для пода, 10.244.0.10 для kube-dns по сравнению с 10.244.12.13 для другого пода); это также может указывать на неправильную конфигурацию CNI, которая будет делать всевозможные странные вещи, точно так же, как вы испытываете

mdaniel 10.04.2019 08:05

Привет, я не могу понять, почему одна и та же подсеть может вызвать проблемы. На главном узле модуль также будет работать на главном узле, он будет наследовать от главного узла, как показано ниже: cni0 Link encap:Ethernet HWaddr 0a:58:0a:f4:00:01 inet addr:10.244.0.1 Bcast:0.0.0.0 Mask :255.255.255.0 То же, что и ведомое устройство: root@pvgl50934100b:/# ifconfig cni0 Link encap:Ethernet HWaddr 0a:58:0a:f4:0c:01 inet addr:10.244.12.1 Bcast:0.0.0.0 Mask:255.255.255.0 Нет?

Alan Sun 10.04.2019 08:30

Под Главный узел не может обнаружить имя службы вы подразумеваете, что kubectl get svc с главного узла не работает? Извините, я просто не вижу этого в вашем посте.

A_Suh 10.04.2019 10:04

Нет @A_Suh, kubectl get svc работает на мастере. Но вы видите, что dnstool, dig или nslookup не могут разрешить. Все модули не работают на мастер-узлах. Все те же реплицированные модули на подчиненных узлах работают хорошо.

Alan Sun 10.04.2019 10:16

У вас есть имя svc kubernetes?

Dinesh Balasubramanian 10.04.2019 13:29

@DineshBalasubramanian Да, иначе как работает другая капсула?

Alan Sun 10.04.2019 13:31

@AlanSun, потому что традиционно Pod CIDR и Service CIDR различны, поскольку IP-адреса Pod являются фактическими адресами, выдаваемыми CNI, но адреса Оказание услуг существуют только в iptables/ipvs. Так что не могу доказать, что это неправильно, просто подозрительно

mdaniel 10.04.2019 22:34

Можете ли вы попробовать с FQDN (полное доменное имя). dig kubernetes.default.svc.cluster.local

Dinesh Balasubramanian 11.04.2019 03:11

@DineshBalasubramanian, тот же результат и та же ошибка только в модуле главного узла. Мне интересно, что еще я могу проверить.

Alan Sun 11.04.2019 05:14
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
0
9
218
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я не уверен, как это происходит, однако я снова запускаю мастер, и все работает нормально, пока два ядра работают на двух разных узлах. Оба могут использовать раскопки и возвращать правильный ответ.

Другие вопросы по теме