Ivan
пока не могу найти, что именно
Ivan
пока не могу найти, что именно
внимательно посмотри на то что ты скинул и найди отличия
Maksim
Если ковырнуть механизмы работы DNS и кублета то всё ещё проще становится
Maksim
пока не могу найти, что именно
Я кажись понял. У тебя не работают коротный dns имена, но работает fqdn?
Oleksandr
резолв конф внутри глянуть
Maksim
--cluster-dns stringSlice Comma-separated list of DNS server IP address. This value is used for containers DNS server in case of Pods with "dnsPolicy=ClusterFirst". Note: all DNS servers appearing in the list MUST serve the same set of records otherwise name resolution within the cluster may not work correctly. There is no guarantee as to which DNS server may be contacted for name resolution. —cluster-domain string Domain for this cluster. If set, kubelet will configure all containers to search this domain in addition to the host's search domains
Maksim
Всё проще
Maksim
Ключи от kubelet
Maksim
первый отвечает за прописывание nameserver в resolv.conf второй за search в resolv.conf (второе формирует short names)
Maksim
видимо да
Сразу так бы и написал) что работает только fqdn, а вот short names не канает
Maksim
Вон выше пилюля
Maksim
проверяй ключи kubelet —cluster-dns и —cluster-domain
Ivan
посмотрел. отличия в днс-имени
Вот, второй лукап у тебя по полному имени, а теперь попробуй короткий по service-name.namespace. В твоем примере nginx-svc.nginx
Ivan
если не работает, как выше писали смотри настройки
Ivan
и резолв внутри пода
Ivan
Вот, второй лукап у тебя по полному имени, а теперь попробуй короткий по service-name.namespace. В твоем примере nginx-svc.nginx
root@rasc-3732246749-h813n:/# nslookup nginx-svc.nginx Server: 10.3.0.254 Address: 10.3.0.254#53 ** server can't find nginx-svc.nginx: NXDOMAIN
Ivan
и резолв внутри пода
root@rasc-3732246749-h813n:/# cat /etc/resolv.conf nameserver 10.3.0.254 options ndots:5
Ivan
айпишник сответствует сервисному айпи куб-днс
Ivan
—cluster-domain = cluster.local
Ivan
не то=)
Maksim
да нет то
Maksim
этого должно быть достаточно, что бы кубелет делал нужные записи в resolv.conf
Maksim
сделай kubectl exec rasc-3732246749-h813n — cat /etc/resolv.conf
Volodymyr
делаю нагрузоное, микросервисы, синхронный REST http: TLS handshake error from 172.20.3.3:31861: EOF Error syncing deployment stage/my-microservice: Operation cannot be fulfilled on deployments.extensions "my-microservice": the object has been modified; please apply your changes to the latest version and try again Сталкивались? Перегрузка по сети?
Anton
нагрузочное в сторону kube-api?
Ivan
сделай kubectl exec rasc-3732246749-h813n — cat /etc/resolv.conf
root@rasc-3732246749-h813n:/# cat /etc/resolv.conf nameserver 10.3.0.254 options ndots:5 уже было выше ))) (14,14)
Maksim
не вижу search....попробуй перезапустит кублет, и пересоздать под
Ivan
да, кстати, возможно я правил его руками... сейчас рестартану
Ivan
нет, тоже самое. search не добавляется
Maksim
что ты сделал?
Ivan
о! а в соседнем поде есть: kubectl -n rasc exec -it rasc-mc-3979153417-5sj00 bash memcache@rasc-mc-3979153417-5sj00:/$ cat /etc/resolv.conf nameserver 10.3.0.254 search rasc.svc.cluster.local svc.cluster.local cluster.local options ndots:5
Maksim
resolv изменяется в момент создания пода кублетом
Ivan
что ты сделал?
kubectl -n rasc delete rasc-3732246749-h813n
Maksim
если под не пересоздавался то там ничего не появится
Maksim
значит смотри кублет, который создал данный под
Maksim
мб его нужно рестартануть (он не подтягивает настройки сам)
Ivan
нет, всё норм. в соседнем поде есть сёрч. а в тот я назначал резолв кастомный при деплое... можно не обращать на него внимание
Maksim
?
Zon
ах ты ж боже ты мой, какие пупсы
При этом внутри это настраивается через kubeadm, на базе LinuxKit
Logan
как на эту тему шутила Ольга Павлова, когда у нее ЛитРес книжку украл - действительно, а зачем добру пропадать?
Ivan
?
kubectl -n rasc exec -it rasc-mc-3979153417-5sj00 bash memcache@rasc-mc-3979153417-5sj00:/$ cat /etc/resolv.conf nameserver 10.3.0.254 search rasc.svc.cluster.local svc.cluster.local cluster.local options ndots:5
Maksim
А что nslookup дает?
Maksim
ну судя по записи my-svc утебя должно работать
Ivan
у меня в этом контейнере нет нслукапа((( и поставить нельзя - он стартует от непривелигированного юзера
bebebe
kubectl cp
Ivan
memcache@rasc-mc-3979153417-5sj00:/$ ping rasc ping: rasc: Temporary failure in name resolution
Ivan
memcache@rasc-mc-3979153417-5sj00:/$ ping rasc.rasc.pod.cluster.local ping: rasc.rasc.pod.cluster.local: No address associated with hostname
Ivan
а вот так резолвит: memcache@rasc-mc-3979153417-5sj00:/$ ping rasc-svc.rasc.svc.cluster.local PING rasc-svc.rasc.svc.cluster.local (10.3.186.23) 56(84) bytes of data. From 10.1.29.1 (10.1.29.1) icmp_seq=1 Packet filtered From 10.1.29.1 (10.1.29.1) icmp_seq=2 Packet filtered но почему то шлёт на шлюз
Maksim
rasc-svc.rasc
Maksim
rasc.rasc
Maksim
Стоп ты ищишь под?
Maksim
так у пода другое имя
Maksim
у тебя должно работать ping rasc-svc
Maksim
потому как у под вот такое имя
Maksim
pod-ip-address.my-namespace.pod.cluster.local
Maksim
ну или через аннотации
Ivan
у тебя должно работать ping rasc-svc
memcache@rasc-mc-3979153417-5sj00:/$ ping rasc.rasc ping: rasc.rasc: Name or service not known PING rasc-svc.rasc.svc.cluster.local (10.3.186.23) 56(84) bytes of data. From 10.1.29.1 (10.1.29.1) icmp_seq=1 Packet filtered From 10.1.29.1 (10.1.29.1) icmp_seq=2 Packet filtered и оно работает
Ivan
Стоп ты ищишь под?
ну хотелось бы под, да... чтобы не создавать сеовис
Maksim
напиши ping rasc-svc.rasc
Maksim
и всё заработает
Ivan
memcache@rasc-mc-3979153417-5sj00:/$ ping rasc-svc.rasc PING rasc-svc.rasc.svc.cluster.local (10.3.186.23) 56(84) bytes of data. From 10.1.29.1 (10.1.29.1) icmp_seq=1 Packet filtered From 10.1.29.1 (10.1.29.1) icmp_seq=2 Packet filtered
Maksim
Никогда не заморачивался, связь между подами всегда делал через сервис, потому что он статичный, а поды динамичные + сервис обеспечивает отказоустойчивость, если под больше одного
Maksim
https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pods
Maksim
Ну вот короткие имена работают)
Ivan
да, это читал
Maksim
у тебя под то не rasc, а rasc-mc-3979153417-5sj00
Ivan
Ну вот короткие имена работают)
так это сервис )) а я хотел по-старинке, через имя пода (оно тоже статичное - в деплойменте прописывается)
Maksim
Нет, имя пода не статичное