Andrey
А что именно не получается? Я первый раз по их доке на coreos все делал, вроде все ок
Andrey
Может с labels намудрил чего то?
Andrei
Может.
В deployment и сервисе стоит
labels:
exporter: clickhouse
в ServiceMonitor
selector:
matchLabels:
exporter: clickhouse
namespaceSelector:
any: true
Создаю в namespace где и пром, monitoring.
После добавления operator в логах пишет "updating config skipped, no configuration change"
Andrey
А в ServiceMonitor прописываешь label, которые ждет kind: Prometheus?
Andrei
Ставил через helm coreos/kube-prometheus, на сколько я понял, по умолчанию SerivceMonitorSelector пустой, что означает что он должен дискаверить все ServiceMonitor
Andrey
Кинул в личку свой пример. Про "дискаверить все ServiceMonitor" - не понмю, кажется я не пробовал. Я сразу label прописвывал
Andrei
Всем спасибо, всё взлетело
Й
Так а в чем проблема-то была? Интересно же)
Й
Окееей. Спасибо
Lex
привет, настраиваю tls bootstrapping для кублетов и не работают ни logs ни exec, валятся с ошибкой:
x509: certificate signed by unknown authority
Lex
как это поправить?
Andrei
Andor
и что надо тест запустить
Lex
а кто-то настраивал у себя tls bootstrapping?
Andrey
и что надо тест запустить
Ну он может быть последним в списке. И соответсвенно из переменных окружения будет знать какой под чекать
Andrei
можно отдавать release через nginx
Andor
это теория или сам так делал?
Andrei
Пока не делал, но сделать чек внутри приложения с отдачей нужных данных не проблема
Andor
а новое может вообще не запуститься например
Andor
ну короче смысл делать такой тест если всё равно прометей есть, который по сути частично этот тест дублирует
Andrey
Andor
ну вот если добавить подобный тест, то лаг будет в пределах интервала опроса прометея, то есть не больше 1 минуты (обычно)
Andor
смысл подобный тест тогда заводить вообще
Andrei
Чтобы валился деплой
Andrei
а не за метриками лезть
Andrei
Можно и тест сделать на базе метрик прометея. Тут кто как хочет так и ...
Andor
так он и свалится
Andor
вопрос в том, откуда ты про это узнаешь
Andrei
Почему он свалится?
Andor
> как узнать статус успешно прошел деплой или нет ?
> Например возникает следующая ситуация yaml принят успешно, но допустим есть ошибка в коде и под валится после старта. И узнаю я об этом только от прометея.
из задачи
Andrey
Еще до того как заехали в k8s деплоили в докер контейнерами.
Ну и в момент когда выполнялся docker start $name, наступал момент истины.
Все к этому как то привыкли )
А теперь еще после успешного деплоя нужно еще и чятик мониторинга посмотреть )
Andrei
Кстати, тоже вариант. Узнавать у куба что там с текущей выкаткой, не ушел ли контэйнер в loop
Andrey
Andrei
Andor
технически в кубере есть хуки: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/
Andrei
Они ж сейчас только в последних версиях сделали файл с описанием действий как у всех
Andor
но я их не юзал
Andrey
Andrei
Да у меня тоже весь, тоже интеграция…
Pavel
В деплойменте есть такой параметр:
spec:
progressDeadlineSeconds: 180
С ним kubectl rollout status возвращает ошибку, если деплоймент не смог подняться по завершении этого таймаута. А дальше баш.
Пример для гитлаба. Для самого деплоя используется set image, но apply -f ничем не будет отличаться
- kubectl set image deployment/$CI_PROJECT_NAME *=$REPOSITORY_URL/$CI_PROJECT_NAME:$CI_COMMIT_REF_SLUG.$CI_PIPELINE_ID --namespace production
- kubectl rollout status deployment/$CI_PROJECT_NAME --namespace production || (kubectl rollout undo deployment/$CI_PROJECT_NAME --namespace production && exit 1)
Andrei
а в helm?
helm status … -o json | grep ?
Pavel
А в helm есть ключ --wait.
С ним helm upgrade будет ждать пока не поднимутся все поды. А по истечении таймаута вернет ошибку. И можно сделать helm rollback.
Dmytro
бамбу же ужасен чуть менее чем полностью? как и в-принципе все продукты атлассиан, но это уже оффтопик - сорри
Andrei
О, спасибо!
Andrei
Dmytro
ух даже так, ок лучше не буду начинать
Andrei
Bamboo да, пока только догоняет остальных
Andor
хуже confluence не видел вики
Andor
жира ок, но жыр
Andrei
Давайте не будем уходить в «дистро срач»)
Dmytro
из моих наблюдений ниша деплоя и потом (что мне еще более интересно) какого-то дашборда где бы показывало какая версия микросервиса продеплоена в каком энвайроменте не заполнена
Andrei
Можно такое на графане собрать
Dmytro
есть какие-то хрени прикрученные сбоку - гитбал интеграция и спиннакер
Dmytro
обе более чем ущербны
Dmytro
и похоже что пока все велосипедят кто как может :( я думаю скоро тоже буду писать свой велосипед на эту тему
Andrei
Я пока описываю сборку/деплой в makefile. Позволяет унифицировать разные проекты с разными схемами деплоя (k8s, docker-compose, capistrano) и переезд между разными ci/cd не страшный. Можно хоть локально задеплоить
Andrei
Pavel
Тут еще были разговоры по поводу определения успешности деплоя через прометеус.
Посмотрите эту штуку. Уже все готово.
https://github.com/ContainerSolutions/helm-monitor
Andrei
Шикарно, спасибо!
Andor
интересно
Dmytro
Andor
но завязка на хельм
Andrey
Ну я и так в сторону хельма поглядываю.
Dmytro
лишняя зависимость и весьма opionated идея делать все что попадется под руку (в данном случае деплоить) мейкфайлом
bebebe
Dmytro
у меня на работе тоже есть поклоннике мейкфайлов, они даже ява приложение на проде стартуют мейкфайлами
Dmytro
а потом контейнер не стопается (мейкфайл там оборачивает все в шелл команды вот это все)
Dmytro
А можно поподробнее? а то что-то посоны и не в курсе про стандарт деплоить мейкфайлами
Andor
фабриком надо
Andor
fab deploy и вот это всё