Ivan
stolon нормально работает?
Работает, но с нюансами. Имеем кластера с pvc в амазоне и с emptyDir(да, рисково=) на своем железе. Если ноды в кластере имеют свой пв, то проблем нету. А вот с emtryDir есть нюанс, нода кипера пишет свой uid в etcd, и в случае если он зафиксирован при старте как в доке https://github.com/sorintlab/stolon/blob/4973929c441ae608e47692bae03756882b06a0bb/examples/kubernetes/rc/stolon-keeper0.yaml env: - name: STKEEPER_UID value: "keeper0" То при поднятии упавшего пода в новом месте, будет ошибка, что uid и boot uid отличаются. Решается просто, опустить STKEEPER_UID (будет генериться рандомно). Но в старых версиях они живут вечно. В кластер будет входить нормально, но запись в etcd останется: === Keepers === UID PG LISTENADDRESS HEALTHY PGWANTEDGENERATION PGCURRENTGENERATION 1aaa0aa8 10.253.203.160:5432 false 2 2 29b97601 10.253.208.110:5432 true 2 2 61c2ce0b 10.253.211.189:5432 true 3 3 keeper2 10.253.216.243:5432 true 6 6
Ivan
Вещь впринципи не плохая, но пока еще не идеальная.
Mihail
А расскажите мне пожалста как вы в свои приложения ходите снаружи? nodeport и какой нибудь nginx снаружи? или ingress?
Mihail
я чет запутался чуть менее чем полностью
Logan
для http - ingress на базе traefik. Для обычных потоков планирую gobetween, но пока не сделал
Rinat
ingress нужен это если у тебя много приложений должны принимать запросы (разные домены например, а ip одинаковые)
Mihail
точно, про траефик то я и позабыл
Rinat
но гы ingress пока не смог поднять)
Mihail
ну домены у меня разные, но это можно и портами разрулить
Mihail
и да, чет я тоже ингресс не могу запустить
Sergey
gobetween и exec дискавери - давно уже пашет с кубером
Sergey
но Ярик и компания не хотят впиливать нативную поддержку кубера
Rinat
может кто подскажет что за ошибка https://gist.github.com/Gasoid/13eda7b820c564e601f4fe9480e29d87
Sergey
Обещали плагинную систему, что бы такие вещи как поддержку кубера сделать отдельно - так и не сделали
Rinat
может я не понимаю) 2 unavailable
Rinat
get pods пусто
Maksim
дык там ошибки нет
Rinat
понял) тогда как интерпретировать
Maksim
там написано что он пытается создать replicaset
Rinat
почему не запускается
Maksim
смотри что творится в replicaset
Maksim
есть ли они вообще
Rinat
не создается
Maksim
если нет смотри логи контроллера
Rinat
ok спс
Maksim
запущен ли он вообще?
Maksim
контроллер и шедулер?
Rinat
контроллер хм
Rinat
может и нет, как проверить?
Maksim
дык это же базисные сервисы
Maksim
завист от ого как ты деплоил кубер
Maksim
где-то они как поды поднимаются, где-то как сервисы ОС
Rinat
понял) короче да походу просто по-другому надо делать
Rinat
спс
Rinat
деплоил я вообще через https://gravitational.com/docs/overview/
Vitaliy
кто вкурсе: я определяю list и в нем разные объекты deployment, service, configmap etc по порядку... потом скармливаю это все в kubectl apply. как оно среагирует если что-то в списке не накатится? к примеру не накатывается конфигмап по какойто причине, пойдет ли оно на след.элемент списка? и как на такое среагирует helm?
Anonymous
если проблема в синтаксисе то kubectl ругнется на валидацию и дальше не пойдет, не знаю как щас но раньше элементы которые были до этого он загрузит
Anonymous
если проблема в неправильных опциях (типа докер-контейнер не тот) но валидация прошла то он и задеплоит as is
Øk_gø_løve
Всем доброго вечера. Такой вопрос - при создании Service с type: LoadBalancer в AWS создается их собственный балансер с определенным доменным именем и настройками. Если передеплоить сей Service, то балансер создастся заново с другим доменным именем. Вопрос в чем — можно ли вручную создать статичный Load Balancer и натравить его на traefik в кубе?
Ivan
Всем привет! Помогите пожалуйста понять))) я не могу достучаться до сервиса, (работающего на одной ноде) с другой ноды. как в теории это должно происходить? на физических нодах есть интерфейсы докера (172.17.0.1) и фланэла (10.4.х.х) а сетки 10.3.х.х (которая используется для сервисов) на физической ноде не светится и весь траффик идёт на шлюз по умолчанию (и естественно уходит вникуда)
Всем привет! Продложаю настраивать сетку в кубере. Выяснил, что сервисная сеть при нормальной работе не имеет собственного физического интерфейса а разруливается правилами iptables. Собственно, у меня в результате развёртывания по оф.мануалу ( https://coreos.com/tectonic/docs/latest/tutorials/kubernetes/deploy-master.html#tls-assets ) эти правила не создались. Я пока не смог найти, кто их должен создавать и как это сконфигурить... Никто не в курсе?
Ivan
ЗЫ: накернился сайт с документацией кореоси. у меня закладка называлась "Step 2: Deploy Kubernetes Master". теперь вместо неё открывается хрень, которую я запостил выше)))
Maksim
Kube-proxy
Ivan
да, куб-прокси у меня поднят. работает на всех нодах
Ivan
и ошибок в его логах нет
Ivan
возможно (как всегда) надо где то добавить волшебный ключик
Ivan
только бы понять какой и где)))))
Maksim
Ну правила ната и дната в iptables прописывает именно он
M
а кто helm'ом выкатывает, вы как проверяете статус деплойментов взлетело или нет?
OhPhaiw7
--wait —timeout
M
--wait —timeout
я проверил, он не ждет )
M
v2.6.1
OhPhaiw7
ждёт ready ресурсов —timeout секунд, exit code 0 - ok, !0 - не дождался, но ресурсы могут подняться чуть позже. серьёзно к этому относиться не нужно. лучше делать хороший readinessProbe и rolling update с правильной стратегией будет достаточен.
M
я ему указывал тэг, которого нет в регистри он деплоит и говорит что все ок, тут readiness не поможет
OhPhaiw7
RTFM
M
RTFM
exit code 0, таймаут не превышен, он секунд через 5 это выдает, что не так?
M
я понимаю , что предыдущий он не убьет, но я хотел бы знать как прошел деплой без запуска дополнительных проверок после
OhPhaiw7
helm histroy
OhPhaiw7
helm upgrade работает как я написал, с проблемами exit code не сталкивался
OhPhaiw7
https://github.com/kubernetes/helm/blob/acd113ec21e2ff49c1ea998917b1494a8e65e6b1/pkg/kube/wait.go
Ilya
я ему указывал тэг, которого нет в регистри он деплоит и говорит что все ок, тут readiness не поможет
он же вообще контейнер не стартанёт и до рединес проб не дойдёт и будет крутиться в ImagePullBackoff
M
он же вообще контейнер не стартанёт и до рединес проб не дойдёт и будет крутиться в ImagePullBackoff
ну так и происходит, но хелм при этом возвращает код 0 как ни в чем не бывало
Ilya
там есть ещё ньюанс с maxSurge/minUnavailable https://github.com/kubernetes/helm/blob/master/pkg/kube/wait.go#L173
Ilya
*minSurge/maxUnavailable
Ilya
если minSurge=0 / maxUnavailable=100%, он будет вести себя как раз так
M
если minSurge=0 / maxUnavailable=100%, он будет вести себя как раз так
strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 1 type: RollingUpdate
Ilya
попробуй с maxUnavailable: 0 катнуть
Ilya
и replicas: 1, я правильно понимаю?
M
попробуй с maxUnavailable: 0 катнуть
я сейчас даже не апгрейд тестирую, а install
Ilya
а там без разницы, install или upgrade, он просто считает 0 готовых реплик >= 1 требуемая реплика - 1 потенциально недоступная
OhPhaiw7
maxUnavailable, minSurge лучше в % указывать, они округляться будут правильно и maxUnavailable не будет 1 с replicas 1
Ilya
это сразу превращается в true
Ilya
ну и если задуматься, это, в принципе, имеет смысл
M
попробуй с maxUnavailable: 0 катнуть
да, кажеется это сработало, спасибо)
Mark
Поцоны, кто использует kops. Если накатить minSize = 0 и maxSize = 20 для instancegroup, в которой запускаются on-spot instances, то как будет вести себя kubernetes (для нод, а не для мастера.)
𝚔𝚟𝚊𝚙𝚜
Я тут кстати заставил кубер рулить айпишниками на физических интерфейсах, может кому-нибудь будет интересно: https://github.com/kvaps/docker-external-ip/
Sergii
Я тут кстати заставил кубер рулить айпишниками на физических интерфейсах, может кому-нибудь будет интересно: https://github.com/kvaps/docker-external-ip/
@kvaps А вы смотрели https://github.com/Mirantis/k8s-externalipcontroller ? Дело в том в вашей реализации совершенно нет очищения 2го уровня, а это время