Алексей
G72K
Что не так с kubespray?
Религиозный вопрос. Лично для меня: он не решает ни одной задачи, которую нельзя было бы решить другими более простыми средствами. С появлением bootkube, все что нужно это запустить kubelet на всех нодах и запустить bootkube один раз на одной. Ну etcd, но на CoreOS это можно сказать из коробки.
G72K
Кластер должен уметь описывать и поддерживать сам себя. Ребята пилят ClusterAPI , вот это правильное направление. Хочу апгрейд ОС на всех нодах, с корректными ребутами, проверками и роллбэком, через kubectl apply
Алексей
Anton
А что сейчас наиболее прогрессивное для сети? flannel?
Denis
Anton
А что не устраивало? или наоборот какие плюсы в calico?
Victor
У calico с network policy получше, для flannel нужен canal насколько я помню
Victor
Кто с helm'ом живет, вы чарты внутри проектов храните или выносите отдельно как в kubernetes/charts?
Anonymous
чарты внешних (типа форк монги) в отдельной репе, чарты внутренних сервисов запакованы в один универсальный чарт во внешней репе, сервисы деплоются через values.yml которые в каждой репе сервиса свои
Михаил
Victor
а serviceName-version.tgz во внешней универсальной репе хранится? или в нутри проекта сохраняется?
G72K
Михаил
G72K
G72K
G72K
Те. перед вызовом helm template, структура такая:
- /chart/Chart.yaml
- /chart/values.yaml
- /chart/charts/generic-app/.git
sbog
У нас тесты и деплой разъединены, например. Не собираем чарт, если тесты не прошли локально. На случай роллбэка храним все в helm сервере. Т.е. схема такая: пуш в бранч -> юниты -> сборка нового контейнера -> сборка нового чарта -> мерж -> деплой.
Victor
sbog
Генерим и коммитим в свой helm repo. А деплоим из него на стадии деплоя
G72K
sbog
Зачем собирать новый чарт, если юниты не прошли? Увеличивать энтропию только.
G72K
что изменяется в чарте между сборками?
sbog
Имя контейнера, иногда - переменные какие-то, если это нужно. У нас есть сервисы, где, например, сервис не принимает реплицированную монгу, отдаем нереплицированный урл флагом. Когда допишут - просто опцию поменяем. Где флагов становится много, разработчики переезжают на конфиги - добавляются конфигмап темплейты в чарты. Где-то сервис ведет себя как кажется немного странно но локально не видно почему - пробрасываем facility level другой в чарт. Как только ты руками на кластере ничего не меняешь, оказывается, что на любой чих меняется чарт.
sbog
Но сам по себе новый чарт просто тянет новый код. С этим можно делать роллбэк - а именно роллбэк и апгрейд и есть часть того, почему все хотят k8s, а не, скажем, OpenStack
G72K
Имя контейнера, иногда - переменные какие-то, если это нужно. У нас есть сервисы, где, например, сервис не принимает реплицированную монгу, отдаем нереплицированный урл флагом. Когда допишут - просто опцию поменяем. Где флагов становится много, разработчики переезжают на конфиги - добавляются конфигмап темплейты в чарты. Где-то сервис ведет себя как кажется немного странно но локально не видно почему - пробрасываем facility level другой в чарт. Как только ты руками на кластере ничего не меняешь, оказывается, что на любой чих меняется чарт.
Ну так держите черт кодом, зачем его "пересобирать"?
sbog
Что значит "держите чарт кодом"?
sbog
У тебя код приезжает в реджистри же в итоге. Я прод с "latest" не тяну.
G72K
*рядом с кодом
sbog
Ну держишь ты его рядом с кодом. А доставку кода ты как организовываешь?
sbog
Вот выкатили в прод новую версию, оказалось, что есть проблема. Как делать роллбэк, ждать, пока разрабы регрессию пофиксят?
Dmitry
Terry
ребята, нужен совет - лепить контейнер для wordpress в гугл клауде есть смысл? или лучше свой контейнер в kubernetes запустить уже притготовленный свой личный?
Dmitry
Victor
в circleci собственно так же
Dmitry
Понял. То есть любой кто имеет доступ к этому проекту может прочитать переменные
Dmitry
Ну, в теории
Dmitry
Victor
а как же echo $VAR в проекте (во время сборки)?
у нас конфиги лежат в ops папке и есть git server-hook который проверяет права тех кто его менял
+ gitlab variables можно поставить флаг protected тогда она будет доступна только в protected ветках/тегах которые создает мастер/овнер
Dmitry
Ааа, хорошо. Уже несколько раз такую стратегию вижу, когда защищенная ветка хранит конфиги сборки 🙂
Dmitry
Потому что я все в отдельной репе храню, и почти всегда это работает. Но иногда хочется чего-то лучше...
G72K
Dmitry
Спасибо всем в чатике. Базу прям хорошо внушили)))
Dmitry
Вдохновляет возможность задеплоить с нуля ваще ВСЕ. "Дай мне ip 2х сервантов, сделаю че надо".. И минимальный риск косяков среды, т.к. все контейнеризированоо
G72K
Dmitry
😄
Sergey
Ребят, тут кто-то давече писал про Bootkube, я что-то по диагонали не нашел как он реаизовывает HA мастер
Sergey
сразу говорю я особо не вчитывался, бегло с ходу не нашел
G72K
По замыслу там должны быть демонсеты apiserver, controller manager и scheduler как минимум. Можете положить туда все что угодно. Как к этим apiserver будут ходить kubelet и kube-proxy не забота bootkube
Anton
кто нить мониторит состояния подов? думаю что число подов в pending может быть интересно, crashloop может быть удастся так же увидеть. кто поделится дашбордом для grafana\prometheus
Terry
Расширяем функционал Ansible с помощью плагинов: часть 2 https://u.tmtm.ru/gImE5
Anonymous
в кубере запущен drone.io, в пайплайне которого подтягивается docker compose, который запускает образ с кодом и тестами
где я свернул не туда... 🙂
Алексей
Кто-то использует имидж quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.9.0 для ингреса?
Если используете, то как у вас с алиасами?
Dmitry
Anton
Всем привет. Кто нибудь пытался как-то собирать кор-дампы из контейнеров в кубере? Гугление нормального решения не дало(
ℭ𝔞𝔯𝔯𝔬𝔩
ℭ𝔞𝔯𝔯𝔬𝔩
Зачем ему композ?
Даня
https://github.com/kubernetes/charts/tree/master/stable/minecraft
😂😂😂😂😂😂😂
Даня
вот истинное предназначение кубера
Даня
а не все ваши эти тестирования
Alex Sharov
народ, а как получить через kubectl текущий namespace?
Dmitrii
kubectl config view | grep namespace: вроде
https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
Andrey
Парни, подскажите по nginx ingress, как лучше сделать работу следующей схемы: есть два приложения 1-landing page 2-web-app, нужно чтобы по по переходу на сайт работал лендинг т.е site.com -> landing app, а все что идет дальше \ то уходило бы на 2ое приложение. В nginx это решалось в location =\ —-> landing, и location \ —-> web-app, а в ингрессе это так не работает, или работает но я чот не нашел как
Anonymous
а какую rollingUpdate заюзать если я хочу чтобы при деплое был только один под доступным из старых?
Maksim
Anonymous
а как получить ip ноды?
kubectl get nodes -o jsonpath='{ $.items[*].status.addresses[?(@.type=="ExternalIP")].address }'
не помог
Farit
Farit
Terry
Добрый день. Вопрос к участникам - кто юзает google app engine для своих сайтов и сервисов вместо docker и kubernetes?