Sergey
Andrey
наверняка кто нибудь юзал helm prometheus-operator - как там на графану exteranlIP навесить? добавлял в конфиг externalIPs: [ 1.2.3.4 ] - сервис не реагирует. тер сервис подымал заново тоже нифига. причем prometheus из той же пачки спокойно себе слушает
Andrey
когда пытался прикрутить внутренний балансер (дело происходит на амазоне) графана создала внешний - потер попробовал заново с той же конфигурацией создал внутренний хаос вобщем какой то
Pavel
в каком именно конфиге задавали exteranlIP?
Pavel
там их два
Andrey
в каком именно конфиге задавали exteranlIP?
разобрался - там в темплейте почему то не был добавлен блок для externalIPs из values.yaml
Pavel
угу
Vegas
Всем привет. Кто-то настраивал доступ в кластер гугла через их встроенный VPN? Столкнулся с тем, что ClusterIP у сервисов недоступны из on-premise network. Они с подами в одной сети, поды пингутся и доступны, ноды кластера при этом тоже доступны. Доступ через nodePort есть, к ClusterIP - нет. В firewall все открыто. Куда можно покопать?
Vegas
spec: clusterIP: clusterIP externalTrafficPolicy: Cluster ports: - nodePort: 32210 port: 5432 protocol: TCP targetPort: 5432 selector: app: app sessionAffinity: None type: NodePort status: loadBalancer: {} curl nodeIP:33210 - ок curl clusterIP:5432 - не ок
Andor
Потому что они из разных подсетей?
Andor
У тебя роут в кластер-айпи подсеть вообще есть?
Vegas
Да, естественно
Vegas
Сами поды в одной /14 с сервисными адресами, и сами поды доступны
Andor
Показывай трейс тогда
Vegas
По трейсу уходит в облако, но из него ответ не возвращается
Vegas
Точнее по счетчикам ipsec
Nikolay Markov
@Enchantner Я тут интересную штуку нашёл. Похоже, что может помочь вашему кейсу. https://kubernetes.io/blog/2018/06/07/dynamic-ingress-in-kubernetes/ getambassador.io
амбассадор пока не настроил, его на миникубе сложно тестить - каждый из подов требует аж цельный 1 CPU
Nikolay Markov
а вот в ingress-nginx-controller до сих пор не вижу в упор, как роутить в разные неймспейсы
Nikolay Markov
контроллер сам раздеплоил, проблем нет, но дальше не очень понятно
Vegas
mtr не очень помогает, на самом деле: К кластерному адресу mtr -t 10.7.242.252 1. Шлюз в on-premise сети 2. ??? К поду mtr -t 10.4.5.236 1. Шлюз в on-premise сети 2. 10.156.0.8 - IP адрес ноды 3. 10.4.5.236 Под и кластерный адрес в одной подсети 10.4.0.0/14
Andrey
контроллер сам раздеплоил, проблем нет, но дальше не очень понятно
Вот пример простой автоматической создавалки ингрессов, в зависимости от аннотации в Service объекте. Можете подхакать её в соответствии со своими нуждами. https://github.com/hxquangnhat/kubernetes-auto-ingress
Andrey
а если будет в двух ингрессах одинаковый урл?
Ну, path (компонент URL) же разный будет, да?
Алексей
Какими костылями увеличить rlimit_nofile в ingress_nginx?
Andrey
Какими костылями увеличить rlimit_nofile в ingress_nginx?
Он сам запросит максимум. Исходя из системного вызова getrlimit(2). Он покажет значение /proc/sys/fs/file-max, потому что в Kubernetes и Docker по-умолчанию тюнинга ulimit для контейнеров в подах нет нет, да и через API тоже пока никак. Так что крутите file-max и полчите увеличение открытых файлов. https://github.com/kubernetes/ingress-nginx/blob/c9a0c9029505b8d4258a720ebb76d696eae947c8/internal/ingress/controller/util.go#L63
Алексей
Варианты: 1) выставить опцией дефолт для контэйнеров в докер демоне 2) перебить контэйнер ингреса для выставления ulimit Еще варианты?
Алексей
file-max на хостсистеме стоит 6500000
Алексей
В контейнере тоже значение
Andrey
Так в чём проблема?
Алексей
Он забирает значение ulimit -n 65000
Алексей
Его уже делит на количество процессов нгинкс минус 1024
Алексей
Получается около 7000 на процесс Мне нужно больше, раз в 8
Алексей
Ингрес берет ulimit а должен fs max
Nikolay Markov
Ну, path (компонент URL) же разный будет, да?
не факт. Но попробую так сделать, да
Алексей
Докер ulimit кстати умеет Только поддержка в кубере только планируется По сырцам я уже прошелся Поэтому и спрашиваю кто какимикостылями пользуется
Andrey
не факт. Но попробую так сделать, да
Если и он одинаковый, то я не понимаю, как вы собрались через один одинаковый URL ходить в разные сервисы. Идинтификации же не будет никакой.
Nikolay Markov
видимо, неправильно думал
Andrey
Он забирает значение ulimit -n 65000
Это ulimit в контейнере выдаёт? Без каких-то дополнительных настроек?
Алексей
Да
Andrey
Я, кажется, знаю, что это такое. Минуту.
Алексей
Ну не ровно Но смысл понятен
Алексей
Это инт16
Andrey
Ну не ровно Но смысл понятен
Можете скинуть вывод sudo systemctl cat docker.service с хоста?
Алексей
Нет Не за компом Но там бесконечность
Алексей
Для докер демона
Andrey
Ясно всё, я с этим уже сталкивался. Это баг в systemd.
Andrey
https://github.com/systemd/systemd/issues/6559
Andrey
Мой issue.
Andrey
infinity в ранних версиях systemd равны 65535. :)
Andrey
Я вручную поднял или можно дистрибутив на хостах обновить: LimitNOFILE=1048576
Andrey
Проблема у версий systemd <234. https://github.com/systemd/systemd/issues/6559#issuecomment-320868301
Алексей
Хм О как Они что в константах бесконечность в max int 16 определили? Ай да Потеринг Ай да молодец Проверю Спасибо
Andrey
Хм О как Они что в константах бесконечность в max int 16 определили? Ай да Потеринг Ай да молодец Проверю Спасибо
Гляньте diff. Он статически был определён, да. https://github.com/systemd/systemd/commit/6385cb31ef443be3e0d6da5ea62a267a49174688#diff-108b33cf1bd0765d116dd401376ca356L1186
Andrey
Его уже делит на количество процессов нгинкс минус 1024
Вот это неправильно, ulimit -n по процессам работает, никакого деления нет. Можно нафоркать тонну процессов и легко превысить этот лимит.
Алексей
Это логика в ингессе по сырцам
Andrey
А, хорошо. В них не заглядывал, думал, про Linux только речь.
Алексей
Не Я до такого не додумаюсь
Vegas
Да. Спасибо, уже понял механизм их работы)
Lucky SB
Привет всем! кто нибудь сталкивался с проблемами dns? Не было времени разбираться в причинах, просто удалить под у заработало
было что-то похожее. у dnsmasq есть лимиты по количеству запросов, которые он может обслужить. если превышать, то он перестает отвечать. решил увеличением min: в cm kubedns-autoscaler
Lucky SB
а у кого в кубе схема с тремя мастерами ? У меня куб налит через kubespray - выключение одного из мастеров приводит к большим проблемам в кластере. etcd лидер переключается, а вот с лидером контролера и шедулера проблемы - падать начинают. помогает убийство через kill -9 api-серверов на оставшихся двух мастерах
Lucky SB
куб - 1.9.5
Lucky SB
связность хорошая. пробовал в разных средах. последняя - 4 kvm виртуалки на одном сервере
Lucky SB
в логах всякая ругань E0625 16:54:04.122089 1 leaderelection.go:224] error retrieving resource lock kube-system/kube-controller-manager: the server was unable to return a response in he time allotted, but may still be processing the request (get endpoints kube-controller-manager)
Lucky SB
E0625 16:54:04.426652 1 available_controller.go:295] v1.apps failed with: Unable to refresh the Webhook configuration: the server was unable to return a responsein the time allotted, but may still be processing the request (get mutatingwebhookconfigurations.admissionregistration.k8s.io)
Lucky SB
Что по логам? У всех сетевая связность хорошая? Какие параметры командной строки?
вот шедулер стал лидером и через пару минут упал I0625 16:46:58.844686 1 leaderelection.go:184] successfully acquired lease kube-system/kube-scheduler E0625 16:47:28.846151 1 event.go:200] Server rejected event '&v1.Event{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"kube-scheduler.153b75120f0b301b", GenerateName:"", Namespace:"kube-system", SelfLink:"", UID:"", ResourceVersion:"", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Initializers:(*v1.Initializers)(nil), Finalizers:[]string(nil), ClusterName:""}, InvolvedObject:v1.ObjectReference{Kind:"Endpoints", Namespace:"kube-system", Name:"kube-scheduler", UID:"4513c97b-77e5-11e8-9da6-52540083231b", APIVersion:"v1", ResourceVersion:"123985", FieldPath:""}, Reason:"LeaderElection", Message:"master-2.southbridge.ru became leader", Source:v1.EventSource{Component:"default-scheduler", Host:""}, FirstTimestamp:v1.Time{Time:time.Time{wall:0xbec46500b2589c1b, ext:12936456215678, loc:(*time.Location)(0xaabce00)}}, LastTimestamp:v1.Time{Time:time.Time{wall:0xbec46500b2589c1b, ext:12936456215678, loc:(*time.Location)(0xaabce00)}}, Count:1, Type:"Normal", EventTime:v1.MicroTime{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, Series:(*v1.EventSeries)(nil), Action:"", Related:(*v1.ObjectReference)(nil), ReportingController:"", ReportingInstance:""}': 'Timeout: request did not complete within allowed duration' (will not retry!) E0625 16:51:57.646976 1 leaderelection.go:258] Failed to update lock: Unable to refresh the Webhook configuration: the server was unable to return a response in the time allotted, but may still be processing the request (get mutatingwebhookconfigurations.admissionregistration.k8s.io) E0625 16:52:06.946364 1 leaderelection.go:258] Failed to update lock: Unable to refresh the Webhook configuration: the server was unable to return a response in the time allotted, but may still be processing the request (get mutatingwebhookconfigurations.admissionregistration.k8s.io) E0625 16:52:06.946387 1 event.go:260] Could not construct reference to: '&v1.Endpoints{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"", GenerateName:"", Namespace:"", SelfLink:"", UID:"", ResourceVersion:"", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Initializers:(*v1.Initializers)(nil), Finalizers:[]string(nil), ClusterName:""}, Subsets:[]v1.EndpointSubset(nil)}' due to: 'selfLink was empty, can't make reference'. Will not report event: 'Normal' 'LeaderElection' 'master-2.southbridge.ru stopped leading' I0625 16:52:06.946424 1 leaderelection.go:203] failed to renew lease kube-system/kube-scheduler: timed out waiting for the condition E0625 16:52:06.946434 1 server.go:608] lost master error: lost lease
Andrey
вот шедулер стал лидером и через пару минут упал I0625 16:46:58.844686 1 leaderelection.go:184] successfully acquired lease kube-system/kube-scheduler E0625 16:47:28.846151 1 event.go:200] Server rejected event '&v1.Event{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"kube-scheduler.153b75120f0b301b", GenerateName:"", Namespace:"kube-system", SelfLink:"", UID:"", ResourceVersion:"", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Initializers:(*v1.Initializers)(nil), Finalizers:[]string(nil), ClusterName:""}, InvolvedObject:v1.ObjectReference{Kind:"Endpoints", Namespace:"kube-system", Name:"kube-scheduler", UID:"4513c97b-77e5-11e8-9da6-52540083231b", APIVersion:"v1", ResourceVersion:"123985", FieldPath:""}, Reason:"LeaderElection", Message:"master-2.southbridge.ru became leader", Source:v1.EventSource{Component:"default-scheduler", Host:""}, FirstTimestamp:v1.Time{Time:time.Time{wall:0xbec46500b2589c1b, ext:12936456215678, loc:(*time.Location)(0xaabce00)}}, LastTimestamp:v1.Time{Time:time.Time{wall:0xbec46500b2589c1b, ext:12936456215678, loc:(*time.Location)(0xaabce00)}}, Count:1, Type:"Normal", EventTime:v1.MicroTime{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, Series:(*v1.EventSeries)(nil), Action:"", Related:(*v1.ObjectReference)(nil), ReportingController:"", ReportingInstance:""}': 'Timeout: request did not complete within allowed duration' (will not retry!) E0625 16:51:57.646976 1 leaderelection.go:258] Failed to update lock: Unable to refresh the Webhook configuration: the server was unable to return a response in the time allotted, but may still be processing the request (get mutatingwebhookconfigurations.admissionregistration.k8s.io) E0625 16:52:06.946364 1 leaderelection.go:258] Failed to update lock: Unable to refresh the Webhook configuration: the server was unable to return a response in the time allotted, but may still be processing the request (get mutatingwebhookconfigurations.admissionregistration.k8s.io) E0625 16:52:06.946387 1 event.go:260] Could not construct reference to: '&v1.Endpoints{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"", GenerateName:"", Namespace:"", SelfLink:"", UID:"", ResourceVersion:"", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Initializers:(*v1.Initializers)(nil), Finalizers:[]string(nil), ClusterName:""}, Subsets:[]v1.EndpointSubset(nil)}' due to: 'selfLink was empty, can't make reference'. Will not report event: 'Normal' 'LeaderElection' 'master-2.southbridge.ru stopped leading' I0625 16:52:06.946424 1 leaderelection.go:203] failed to renew lease kube-system/kube-scheduler: timed out waiting for the condition E0625 16:52:06.946434 1 server.go:608] lost master error: lost lease
Интересно, что в обоих случаях вспоминается MutatingWebhook. Он есть? kubectl get mutatingwebhookconfiguration А если удалить, поторяется? Больше не знаю, что посоветовать дистанционно. В таких случаях начинаю руками тыкать.
bebebe
https://github.com/hasura/gitkube
Andor
https://blog.quentin-machu.fr/2018/06/24/5-15s-dns-lookups-on-kubernetes/
bebebe
Based on various traces, Martynas Pumputis discovered that there also was a race with DNAT, as the DNS server is reached via a virtual IP. Due to UDP being a connectionless protocol, connect(2) does not send any packet and therefore no entry is created in the conntrack hash table.
bebebe
я такой боян помойму на openwrt ловил
🆈🅰🆁🅾🆂🅻🅰🆅
Народ, не кидайтесь помидорами только, а ответьте начинающему)) Поднял 4 виртуалки. 1 - мастер и 3 ноды. Засетапил Дебиана 9. Засетапил везде докера. На мастере просетапил кубера и тут ввопрос назрел, а на нодах надо кубера стаивть тоже ?))
Andor
Чо