Я настроил кластер 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