Рейтинг:3

Kubernetes coredns не получает запросы

флаг cn

Я настроил кластер kubernetes, один узел, Debian 11. Однако мой CoreDNS, похоже, ничего не решает. Я замечаю это по тому, что portainer не может загружать ресурсы.

http: ошибка прокси: набрать tcp: поиск kubernetes.default.svc на 10.96.0.10:53: чтение udp 10.244.0.4:57589->10.96.0.10:53: тайм-аут ввода/вывода

Увидев, что это тайм-аут моего DNS, я проверил сервис:

root@dmvandenberg:~/kubernetes# kubectl get svc -n kube-system -o wide
НАЗВАНИЕ ТИП КЛАСТЕР-IP ВНЕШНИЙ-IP ПОРТ(Ы) ВЫБОР ВОЗРАСТА
kube-dns ClusterIP 10.96.0.10 <нет> 53/UDP,53/TCP,9153/TCP 78m k8s-app=kube-dns
root@dmvandenberg:~/kubernetes# kubectl получить модули --selector=k8s-app=kube-dns -o wide -n kube-system
НАЗВАНИЕ ГОТОВНОСТЬ СТАТУС ПЕРЕЗАПУСКИ ВОЗРАСТ IP УЗЛА НАЗНАЧЕННЫЙ УЗЕЛ ГОТОВНОСТЬ ВОРОТА
coredns-78fcd69978-2b6cq 1/1 Бег 0 79 м 10.244.0.2 dmvandenberg.nl <нет> <нет>
coredns-78fcd69978-swprh 1/1 Бег 0 79 м 10.244.0.3 dmvandenberg.nl <нет> <нет>

Я настроил свой кластер с этими файлами:

кошка init.sh init2.sh
kubeadm init --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=all
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml
kubectl create -f https://docs.projectcalico.org/manifests/custom-resources.yaml
kubectl taint nodes --all node-role.kubernetes.io/master-
kubectl создать -f localstorage.yml --save-config
kubectl создать -f pvporttainer.yml --save-config
kubectl patch storageclass local-storage -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
kubectl применить -n portainer -f https://raw.githubusercontent.com/portainer/k8s/master/deploy/manifests/portainer/portainer.yaml

Я также пытался с kubectl применить -f https://github.com/coreos/flannel/raw/master/Documentation/kube-flannel.yml вместо kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml kubectl create -f https://docs.projectcalico.org/manifests/custom-resources.yaml.

root@dmvandenberg:~/kubernetes# cat localstorage.yml
Версия API: storage.k8s.io/v1
вид: StorageClass
метаданные:
  имя: локальное хранилище
поставщик: kubernetes.io/no-provisioner
томбиндингмоде: вайтфорфирстконсумер
root@dmvandenberg:~/kubernetes# cat pvporttainer.yml
апиВерсия: v1
вид: персистентволуме
метаданные:
  имя: Портейнер
спецификация:
  емкость:
    хранилище: 11Gi
  режимы доступа:
    - ReadWriteOnce
  персистентволумереклаймполици: сохранить
  storageClassName: локальное хранилище
  местный:
    путь: /dockerdirs/pvportainer
  сродство узлов:
    обязательный:
      нодселектортермс:
      - matchExpressions:
        - ключ: kubernetes.io/имя хоста
          оператор: В
          ценности:
          - dmvandenberg.nl

Я сузил проблему до разрешения DNS, используя следующую команду и вывод:

root@dmvandenberg:~/kubernetes# kubectl logs --namespace=kube-system -l k8s-app=kube-dns -f & tcpdump -ani cni0 udp порт 53
[5] 9505
tcpdump: подробный вывод подавлен, используйте -v[v]... для полного декодирования протокола
прослушивание на cni0, тип канала EN10MB (Ethernet), длина снимка 262144 байт
.:53
[INFO] плагин/перезагрузка: рабочая конфигурация MD5 = db32ca3650231d74073ff4cf814959a7
CoreDNS-1.8.4
Linux/AMD64, go1.16.4, 053c4d5
.:53
[INFO] плагин/перезагрузка: рабочая конфигурация MD5 = db32ca3650231d74073ff4cf814959a7
CoreDNS-1.8.4
Linux/AMD64, go1.16.4, 053c4d5
21:21:07.629395 IP 10.244.0.4.44224 > 10.244.0.2.53: 3488+ AAAA? kubernetes.default.svc.porttainer.svc.cluster.local. (68)
21:21:07.629667 IP 10.244.0.4.43161 > 10.244.0.2.53: 433+ А? kubernetes.default.svc.porttainer.svc.cluster.local. (68)
21:21:12.630395 IP 10.244.0.4.54508 > 10.244.0.3.53: 61466+ AAAA? kubernetes.default.svc.porttainer.svc.cluster.local. (68)
21:21:12.630453 IP 10.244.0.4.46088 > 10.244.0.2.53: 55999+ А? kubernetes.default.svc.porttainer.svc.cluster.local. (68)
^ С
захвачено 4 пакета
4 пакета получены фильтром
0 пакетов отброшено ядром

Я ожидал увидеть ответы на DNS-запросы, но я их не вижу. В Интернете я нашел кое-что о добавлении «журнала» в основной файл coredns, поэтому я попробовал это, но не вижу никаких строк журнала. Это убеждает меня в том, что сообщения UDP, как показывает tcpdump, не читаются/не принимаются coredns.

Я прошел все шаги в https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/, но дальше меня это не продвинуло.

Я застреваю после этого, хотя. Как продолжить отладку? Что может быть не так?

Редактировать: Я пробовал следовать этому руководству: https://www.oueta.com/linux/create-a-debian-11-kubernetes-cluster-with-kubeadm/ Я вижу точно такой же результат на другом интерфейсе:

16:56:06.482769 cali6bd455d068f В IP 172.20.122.129.60650 > 10.96.0.10.53: 31215+ AAAA? kubernetes.default.svc.porttainer.svc.cluster.local. (68)
16:56:06.482980 cali6bd455d068f В IP 172.20.122.129.35119 > 10.96.0.10.53: 8608+ А? kubernetes.default.svc.porttainer.svc.cluster.local. (68)
16:56:11.483200 cali6bd455d068f В IP 172.20.122.129.57079 > 10.96.0.10.53: 61639+ AAAA? kubernetes.default.svc.porttainer.svc.cluster.local. (68)
16:56:11.483309 cali6bd455d068f В IP 172.20.122.129.38249 > 10.96.0.10.53: 14976+ А? kubernetes.default.svc.porttainer.svc.cluster.local. (68)
16:56:16.484367 cali6bd455d068f В IP 172.20.122.129.57768 > 10.96.0.10.53: 55396+ AAAA? kubernetes.default.svc.svc.cluster.local. (58)
16:56:16.484488 cali6bd455d068f В IP 172.20.122.129.53058 > 10.96.0.10.53: 50700+ А? kubernetes.default.svc.svc.cluster.local. (58)
16:56:21.484644 cali6bd455d068f В IP 172.20.122.129.58857 > 10.96.0.10.53: 18986+ AAAA? kubernetes.default.svc.svc.cluster.local. (58)
16:56:21.484702 cali6bd455d068f В IP 172.20.122.129.36861 > 10.96.0.10.53: 44020+ А? kubernetes.default.svc.svc.cluster.local. (58)

Запуск tcpdump для всего интерфейса показывает, что TCP, кажется, работает, учитывая, что сообщения ACK отправляются обратно. Что я заметил, так это отсутствие трафика с 10.96.0.10 (сервиса) на модуль, но я не знаю, требуется ли это?

17:03:29.224602 IP 169.254.167.173.36088 > 172.20.122.129.9000: Flags [.], ack 1, win 169, options [nop,nop,TS val 4014670766 ecr 4073454542], длина 0
17:03:29.224869 IP 169.254.167.173.36088 > 172.20.122.129.9000: Flags [P.], seq 1:107, ack 1, win 169, options [nop,nop,TS val 4014670766 ecr 4073454542], длина 10042
17:03:29.224887 IP 172.20.122.129.9000 > 169.254.167.173.36088: Flags [.], ack 107, win 167, options [nop,nop,TS val 4073454542 ecr 4014670766], длина 0
17:03:29.225273 IP 172.20.122.129.9000 > 169.254.167.173.36088: флаги [P.], seq 1:818, ack 107, win 167, options [nop,nop,TS val 4073454543 ecr 4014678176], длина 4014670766
17:03:29.225341 IP 169.254.167.173.36088 > 172.20.122.129.9000: Flags [.], ack 818, win 166, options [nop,nop,TS val 4014670767 ecr 4073454543], длина 0
17:03:29.225399 IP 172.20.122.129.9000 > 169.254.167.173.36088: флаги [.], seq 818:7958, ack 107, win 167, options [nop,nop,TS val 4073454543 ecr length 4014],6707470
17:03:29.225422 IP 169.254.167.173.36088 > 172.20.122.129.9000: Flags [.], ack 7958, win 155, options [nop,nop,TS val 4014670767 ecr 4073454543], длина 0
17:03:29.225430 IP 172.20.122.129.9000 > 169.254.167.173.36088: флаги [.], seq 7958:15098, ack 107, win 167, options [nop,nop,TS val 4073454543 длина ecr 40146707]
17:03:29.225448 IP 169.254.167.173.36088 > 172.20.122.129.9000: Flags [.], ack 15098, win 138, options [nop,nop,TS val 4014670767 ecr 4073454543], длина 0
17:03:29.225457 IP 172.20.122.129.9000 > 169.254.167.173.36088: флаги [P.], seq 15098:23486, ack 107, win 167, options [nop,nop,TS val 4073454543 ecr], длина 4061467
17:03:29.225474 IP 169.254.167.173.36088 > 172.20.122.129.9000: Flags [.], ack 23486, win 119, options [nop,nop,TS val 4014670767 ecr 4073454543], длина 0
17:03:29.225564 IP 172.20.122.129.9000 > 169.254.167.173.36088: флаги [F.], seq 23486, ack 107, win 167, options [nop,nop,TS val 4073454543 ecr 4014670767], длина 4014670767
17:03:29.225609 IP 169.254.167.173.36088 > 172.20.122.129.9000: Flags [R.], seq 107, ack 23486, win 166, options [nop,nop,TS val 4014670767 ecr 40734540543], длина 4073454043
17:03:29.524333 IP 172.20.122.129.9000 > 169.254.167.173.9984: Flags [.], ack 3370092883, win 166, options [nop,nop,TS val 4073454842 ecr 1976747960], длина 0
17:03:29.524564 IP 169.254.167.173.9984 > 172.20.122.129.9000: Flags [.], ack 1, win 171, options [nop,nop,TS val 1976763065 ecr 4073424519], длина 0
17:03:34.218598 IP 172.20.122.129.45239 > 10.96.0.10.53: 23854+ AAAA? kubernetes.default.svc. (40)
17:03:34.219065 IP 172.20.122.129.38604 > 10.96.0.10.53: 24098+ А? kubernetes.default.svc. (40)
17:03:34.388311 IP 172.20.122.129.9000 > 169.254.167.173.7394: Flags [.], ack 917, win 166, options [nop,nop,TS val 4073459706 ecr 1976752753], длина 0
17:03:34.388402 IP 169.254.167.173.7394 > 172.20.122.129.9000: Flags [.], ack 1, win 171, options [nop,nop,TS val 1976767929 ecr 4073444530], длина 0
17:03:34.388314 IP 172.20.122.129.9000 > 169.254.167.173.3949: Flags [.], ack 917, win 166, options [nop,nop,TS val 4073459706 ecr 1976752753], длина 0
17:03:34.388424 IP 169.254.167.173.3949 > 172.20.122.129.9000: Flags [.], ack 1, win 171, options [nop,nop,TS val 1976767929 ecr 4073444530], длина 0
17:03:34.388288 IP 172.20.122.129.9000 > 169.254.167.173.26855: Flags [.], ack 917, win 166, options [nop,nop,TS val 4073459706 ecr 1976752752], длина 0
17:03:34.388544 IP 169.254.167.173.26855 > 172.20.122.129.9000: Flags [.], ack 1, win 171, options [nop,nop,TS val 1976767929 ecr 4073444529], длина 0
17:03:39.216823 IP 169.254.167.173.36182 > 172.20.122.129.9000: флаги [S], seq 2192346809, win 43200, параметры [mss 1440, sackOK, TS val 4014680758 ecr 0 8], nop, w0scale
17: 03: 39.216889 IP 172.20.122.129.9000> 169.254.167.173.36182: флаги [S.], сентябрь 1678785660, ACK 2192346810, Win 42840, Options [MSS 1440, Sackok, TS Val 4073464535550, Options [MSS 1440, Sackok, TS Val 4073464555555555555555550. ]
, длина 0
mario avatar
флаг cm
Какую версию kubernetes вы используете?
Daniël van den Berg avatar
флаг cn
@Марио 1.22.2-00
PjoterS avatar
флаг ve
Эта проблема все еще актуальна? Это ваша локальная среда (Linux/ПО для виртуализации) или облачная среда? Можете ли вы подтвердить, что все развернутые модули работают должным образом, вам не хватает ресурсов?
Daniël van den Berg avatar
флаг cn
@PjoterS Нет, я просто переключился на использование docker swarm. Достаточно хорошо на данный момент.
Alex G avatar
флаг ar
@DaniÃlvandenBerg Пожалуйста, опубликуйте свой обходной путь в качестве ответа, чтобы помочь членам сообщества, у которых возникла такая же проблема.
Daniël van den Berg avatar
флаг cn
@AlexG, пожалуйста, прочитайте мой предыдущий комментарий.

Ответить или комментировать

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