Egor
E0808 17:34:11.333080 1890 reflector.go:134] k8s.io/kubernetes/pkg/kubelet/kubelet.go:444: Failed to list *v1.Service: Get https:// ip :6442/api/v1/services?limit=500&resourceVersion=0: dial tcp ip:6442: connect: connection refused
E0808 17:34:11.355126 1890 kubelet.go:2266] node "ip" not found
Egor
подскажите плиз
Egor
что не так?
Egor
etcd запустилась
Egor
В контейнерах только работают
"/hyperkube kubelet
etcd --name=
Vyacheslav
Всем привет. У меня есть большой docker-compose файл. Мне надо все перенести в kubernetes. Нашел kompose который вроде умеет все это делать. Но вот не задача он выдает FATA Unable to load yaml/json file for version parsing: open docker-compose.yml: no such file or directory . Проеверил файл через docker-compose -f docker-compose.yml config ошибок не нашлось. Что еще может быть не так?
Yuri
файл лежит не там где надо или не там смотрит, вообще не рекомендую эту штучку, далеко не всё умеет конвертировать
Yuri
можно попробовать это https://github.com/docker/compose-on-kubernetes/blob/master/README.md, но лично не тестил
Dmitry
если тебе удобно ходить на каждый из узлов и там ставить пакет с двумя бинарниками, конфигами, потом создавать сертификаты для того, чтобы оно в API ходило, плюс запускать системд юнит, который будет сеть настраивать между узлами - то тебе не нужен кубернетес
Ну если быть честным никто руками не ходит по серверам, есть же ansible, chef, puppet. У куба тоже хватает проблем (точнее у манифестов которые пишут люди). Например для kube-router в манифесте такое вот: if [ -f /etc/cni/net.d/10-kuberouter.conflist]; then создай конфиг;fi
Меняешь ты такой конфиг, а оно не меняется. Куб то декралативный и идемпотентный, а вот bash как бы нет. В ансиблах, папеттах и чифах эта проблема неплохо решена.
Lucky SB
что не так?
Все не так. Вместо адреса апи сервера строчка ip, да и порт какой то странный. Обычно 6443
George
Anton
на воркере нет доступа к DNS
kubectl exec -ti busybox — nslookup kubernetes.default
Server: 10.96.0.10
Address 1: 10.96.0.10
nslookup: can't resolve 'kubernetes.default'
Куда копать ? как проверить почему ?
Dmitry
Потому что DNS у него kubernetes.default.svc.cluster.local
Dmitry
Вероятно busybox в другом namespace'е?
Anton
да на другом. так пробовал
Anton
а стоп. бизибокс в дефолтном неймспейсе. а какая разница. сервисы должны видеться с любого же неймспейса
Anton
kubectl exec -ti busybox — nslookup kubernetes.default.svc.cluster.local
Server: 10.96.0.10
Address 1: 10.96.0.10
nslookup: can't resolve 'kubernetes.default.svc.cluster.local'
command terminated with exit code 1
Dmitry
по полному доменому имени да
Anton
вот тебе так... ничего
Anton
я пробовал и так и так...
Dmitry
DNS сломался видимо
Dmitry
служба то существует?
Anton
конечно
Anton
Anton
уже просто не знаю куда копать.... в какую сторону...
Dmitry
С проблемами в coredns не сталкивался. Надо разбираться
Lucky SB
Anton
ну как не работает. я же могу с мастера деплоить в воркер
Anton
я могу айпишники подов смотреть
Anton
я могу в мастере днс дёргать...
Yuri
а из пода пингануть в мир ?
Anton
Yuri
cat /etc/resolv.conf в поде ?
Anton
там айпи днс
Anton
всё ок
Dmitry
то есть из мастера резолвится и из пода на воркере нет? Так network policy мб?
Хмм
Anton
cat /etc/resolv.conf в поде ?
nameserver 10.96.0.10
search default.svc.cluster.local svc.cluster.local cluster.local office.onix.ua
options ndots:5
Anton
Dmitry
Dmitry
Anton
наверное... я не знаю уже что делать... целый день сижу над этой шляпой
Anton
и спросить не у кого
Yuri
и порты в сервисе, а вообще coredns живёт по поду на каждой ноде и они стучат сами в себя, дабы сетку не забивать
Dmitry
Ну так все просто, берешь в руки dig, tcpdump, iptables, ipvsadm и ищешь, на каком этапе пакет обрывается
Yuri
вроде изян )
Anton
Dmitry
ну так самое время получить
Anton
в кубере такая сетка что на рабочем кластере показывает шляпу всякую
Dmitry
Банально проверить, пингуется ли из твоего пода(busbox) под с coredns. И так далее потихоньку найдешь причину
Yuri
случаем не Амазон ? А то они недавно бриджи выключили в дефолтном образе, что немного опечалило.
Anton
как он может пинговаться если он в другой ноде)
Anton
Dmitry
как он может пинговаться если он в другой ноде)
Ну так это базовое что должно быть в кубе. Если у тебя два пода не могут пинговать друг-друга на разных нодах (если network pollicy это не запрещает) то у тебя просто вся сеть не работает
Dmitry
и надо это исправить
Anton
то есть ты хочешь сказать что айпи подов в разных неймспейсах и нодах должны пинговаться ?
Dmitry
Если этого не запрещают network policy, да. Более того - обязаны
Anton
вот. рабочий кластер
Anton
kubectl exec -ti busybox — ping 10.244.1.5
PING 10.244.1.5 (10.244.1.5): 56 data bytes
64 bytes from 10.244.1.5: seq=0 ttl=64 time=0.201 ms
64 bytes from 10.244.1.5: seq=1 ttl=64 time=0.121 ms
^C
—- 10.244.1.5 ping statistics —-
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.121/0.161/
Anton
на рабочем не пингуется. так и должно быть. они изолированны. там обращаться к сервисам нужно
Dmitry
https://kubernetes.io/docs/concepts/cluster-administration/networking/#the-kubernetes-network-model
"pods on a node can communicate with all pods on all nodes without NAT"
Dmitry
"pods on a node can communicate with all pods on all nodes without NAT"
Dmitry
Это базовое требование, без этого кластер куба - нерабочий.
Anton
ну у меня на рабочем не пингуется
Anton
и всё работает
Anton
и днс слушаются и т.д.
Dmitry
У вас не все работает)
Dmitry
собственно из-за этого
Anton
ну как не всё) на рабочем кубере где днс слушаются во всю поды не слушаются )
Dmitry
Я не знаю как вам по другому объяснить. Извините
Anton
это явно не причина того почему не слушаются днс
Dmitry
Так вы же явно написали: Что у вас трафик из пода одной ноды, в под другой ноды не доходит. Как он резолвить то должен?
Dmitry
И DNS "слушаются". Вы до этого писали, что из пода на мастер ноде (где запущены coredns), резолв проходит. Соотвесвтенно DNS работает.
Anton
ок. согласен) как починить ?? куда смотреть то ?
Dmitry
Искать причину
Dmitry
Не работающей сети
Yuri
стоп, а логи самого coredns что-то показывают ?