Size: a a a

Kubernetes — русскоговорящее сообщество

2020 October 30

СЛ

Сергей Ладутько... in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
у тебя kubernetes-dashbord сервис или namespace?
У меня вот так
kubectl get svc -n kubernetes-dashboard
NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
dashboard-metrics-scraper   ClusterIP   10.225.100.83    <none>        8000/TCP        2d17h
kubernetes-dashboard        NodePort    10.225.100.122   <none>        443:31944/TCP   2d17h
источник

S

Stefan in Kubernetes — русскоговорящее сообщество
Сергей Ладутько
А можешь вывод выкинуть как у тебя
kubectl get svc -n kubernetes-dashboard
та это двухгодичной давности наработки
я когда-то сетапил просто через линку и kubectl apply -f - на неё)
а ингресс уже подставил, смапив с тем, что было
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Сергей Ладутько
У меня вот так
kubectl get svc -n kubernetes-dashboard
NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
dashboard-metrics-scraper   ClusterIP   10.225.100.83    <none>        8000/TCP        2d17h
kubernetes-dashboard        NodePort    10.225.100.122   <none>        443:31944/TCP   2d17h
У тебя сервис kubernetes-dashboard в namespace kubernetes-dashboard. Ingress создаешь в этом же namespace?
источник

S

Stefan in Kubernetes — русскоговорящее сообщество
Сергей Ладутько
вот так типо ?
у тебя ингресс без ошибок залетел?
источник

СЛ

Сергей Ладутько... in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
У тебя сервис kubernetes-dashboard в namespace kubernetes-dashboard. Ingress создаешь в этом же namespace?
источник

СЛ

Сергей Ладутько... in Kubernetes — русскоговорящее сообщество
Stefan
у тебя ингресс без ошибок залетел?
Да
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Сергей Ладутько
вот так типо ?
похоже должно работать. У тебя ingress-controller запущен с классом (ingress.class) или без? Заходил вручную на ingress-controller смотрел nginx.conf, есть там твой host (test-k8s-ingress-2...)?
источник

СЛ

Сергей Ладутько... in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
похоже должно работать. У тебя ingress-controller запущен с классом (ingress.class) или без? Заходил вручную на ingress-controller смотрел nginx.conf, есть там твой host (test-k8s-ingress-2...)?
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Сергей Ладутько
если ты ставишь класс, то и ingress-controller должен быть запущен с этим классом, иначе конфиг для твоего ingress он не подхватит. Либо запускай без класса ingress-controller и не указывай класс в ingress, либо наоборот
Классы нужны, если у тебя несколько ingress-controller'ов в кластере ( https://kubernetes.github.io/ingress-nginx/user-guide/multiple-ingress/)
источник

p

promzeus in Kubernetes — русскоговорящее сообщество
Dmitry Sergeev
Нет.
Но ты можешь проверять через liveness пробу, работают/доступны ли другие сервисы, и фейлить ее если не работают. Тогда pod будет перезапущен. Но если ты так хочешь делать, то скорее всего ты делаешь что-то не так.

Если сервисА зависит от сервисаБ, и сервисБ становится недоступным, то тогда сервисА может просто фейлить redinessProbe пока сервисБ не станет доступным. Если фейлится redinessProbe то ingress contorller не отправляет трафик на этот pod, а также он выкидывается из endpoints service'а. Таким образом никаких рестартов не требуется, и все будет работать норм, а когда сервисБ вернется в строй, все само восстановится, без единого рестарта
да, за livnesprobe в курсе, использую. Тут другая ситуация, опишу подробнее:
pod сервера kafka, к нему подключаются клиенты, если по какойто причине kafka была перезагружена, некоторые клиенты а в частности divolte теряет соединение и больше не восстанавливает пока его не перезагрузишь. У клиента divolte нету /metrics либо других ендпоинтов что-бы както зацепиться livnesprobами. Диволт крутил пробовал различные варианты что-бы он сам востанавлвал соединения ни в какую. остается топорный способ жесткий рестарт пода
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
promzeus
да, за livnesprobe в курсе, использую. Тут другая ситуация, опишу подробнее:
pod сервера kafka, к нему подключаются клиенты, если по какойто причине kafka была перезагружена, некоторые клиенты а в частности divolte теряет соединение и больше не восстанавливает пока его не перезагрузишь. У клиента divolte нету /metrics либо других ендпоинтов что-бы както зацепиться livnesprobами. Диволт крутил пробовал различные варианты что-бы он сам востанавлвал соединения ни в какую. остается топорный способ жесткий рестарт пода
Ну я вижу такие варианты
1) Можно исправить проблему и кинуть PR в divolte.
2) livenessProbe может делать exec, не только http вызовы
3) не использовать divolte

Я бы пошел по первому или третьему путям, так как второй путь это костыли, и только создает проблемы эксплуатации. Перезапуск чтобы переконектится - такое себе решение
источник

AS

Artem Silenkov in Kubernetes — русскоговорящее сообщество
Сергей Ладутько
У меня вот так
kubectl get svc -n kubernetes-dashboard
NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
dashboard-metrics-scraper   ClusterIP   10.225.100.83    <none>        8000/TCP        2d17h
kubernetes-dashboard        NodePort    10.225.100.122   <none>        443:31944/TCP   2d17h
Убери там NodePort и сделай ClusterIp если хочешь чтобы работал о через ингресс
источник

СЛ

Сергей Ладутько... in Kubernetes — русскоговорящее сообщество
Artem Silenkov
Убери там NodePort и сделай ClusterIp если хочешь чтобы работал о через ингресс
Я уже
kubernetes-dashboard        ClusterIP   10.225.100.177   <none>        443/TCP    20m
источник

СЛ

Сергей Ладутько... in Kubernetes — русскоговорящее сообщество
Но все равно по 00
источник

AL

Aleksey Lazarev in Kubernetes — русскоговорящее сообщество
Artem Silenkov
Убери там NodePort и сделай ClusterIp если хочешь чтобы работал о через ингресс
Это не влияет
источник

AL

Aleksey Lazarev in Kubernetes — русскоговорящее сообщество
Сергей Ладутько
Но все равно по 00
А что за ошибка то?
источник

AL

Aleksey Lazarev in Kubernetes — русскоговорящее сообщество
404?
источник

СЛ

Сергей Ладутько... in Kubernetes — русскоговорящее сообщество
Aleksey Lazarev
Это не влияет
404 Not Found
источник

AL

Aleksey Lazarev in Kubernetes — русскоговорящее сообщество
Значит host не корректно передаешь - ты уверен что у тебя до ингреса доезжает верный заголовок?
источник

AL

Aleksey Lazarev in Kubernetes — русскоговорящее сообщество
глянь в логи - там что вообще пишет по тому что приехало?
источник