G72K
Что не так с kubespray?
Религиозный вопрос. Лично для меня: он не решает ни одной задачи, которую нельзя было бы решить другими более простыми средствами. С появлением bootkube, все что нужно это запустить kubelet на всех нодах и запустить bootkube один раз на одной. Ну etcd, но на CoreOS это можно сказать из коробки.
G72K
Кластер должен уметь описывать и поддерживать сам себя. Ребята пилят ClusterAPI , вот это правильное направление. Хочу апгрейд ОС на всех нодах, с корректными ребутами, проверками и роллбэком, через kubectl apply
Anton
А что сейчас наиболее прогрессивное для сети? flannel?
Denis
А что сейчас наиболее прогрессивное для сети? flannel?
мы с flannel на calico перешли, пока без нареканий
Anton
А что не устраивало? или наоборот какие плюсы в calico?
Victor
У calico с network policy получше, для flannel нужен canal насколько я помню
Victor
Кто с helm'ом живет, вы чарты внутри проектов храните или выносите отдельно как в kubernetes/charts?
Anonymous
чарты внешних (типа форк монги) в отдельной репе, чарты внутренних сервисов запакованы в один универсальный чарт во внешней репе, сервисы деплоются через values.yml которые в каждой репе сервиса свои
G72K
А что сейчас наиболее прогрессивное для сети? flannel?
Голый calico. Но не совсем "наиболее прогрессивное", просто хорошо работающее
Victor
а serviceName-version.tgz во внешней универсальной репе хранится? или в нутри проекта сохраняется?
G72K
чей-то не прогрессивное?
Ну на острие атаки сейчас всякие Cilium или вон родной CNI от AWS
Victor
git clone при деплое в chart/charts
То есть как то так: 1. Обновили/Добавли чарт 2. сгенерили новый index.yaml 3. git add/commit/push (as github pages например)
G72K
че-то cilium выглядит как комбайн)
Просили прогрессивное
Victor
Нафиг мне этот секс неестественный? Просто git clone :)
Что бы можно было добавить как репозиторий helm repo add https://addresRepo разве нет?
G72K
А что не устраивало? или наоборот какие плюсы в calico?
Одним компонентом меньше, меньше чего может сломаться, поменять конфиг несовместимо и проч.
G72K
Что бы можно было добавить как репозиторий helm repo add https://addresRepo разве нет?
Это так хелм хочет, я считаю они больные на голову. Делаю так (когда есть черт вообще), есть приложение app, в нем ничего, только зависимость на generic-app. Что бы generic-app не публиковать дедовскими способами, оно перед деплоем клонируется в chart/charts
G72K
Те. перед вызовом helm template, структура такая: - /chart/Chart.yaml - /chart/values.yaml - /chart/charts/generic-app/.git
sbog
У нас тесты и деплой разъединены, например. Не собираем чарт, если тесты не прошли локально. На случай роллбэка храним все в helm сервере. Т.е. схема такая: пуш в бранч -> юниты -> сборка нового контейнера -> сборка нового чарта -> мерж -> деплой.
sbog
Генерим и коммитим в свой helm repo. А деплоим из него на стадии деплоя
sbog
Зачем собирать новый чарт, если юниты не прошли? Увеличивать энтропию только.
G72K
что изменяется в чарте между сборками?
sbog
Имя контейнера, иногда - переменные какие-то, если это нужно. У нас есть сервисы, где, например, сервис не принимает реплицированную монгу, отдаем нереплицированный урл флагом. Когда допишут - просто опцию поменяем. Где флагов становится много, разработчики переезжают на конфиги - добавляются конфигмап темплейты в чарты. Где-то сервис ведет себя как кажется немного странно но локально не видно почему - пробрасываем facility level другой в чарт. Как только ты руками на кластере ничего не меняешь, оказывается, что на любой чих меняется чарт.
sbog
Но сам по себе новый чарт просто тянет новый код. С этим можно делать роллбэк - а именно роллбэк и апгрейд и есть часть того, почему все хотят k8s, а не, скажем, OpenStack
sbog
Что значит "держите чарт кодом"?
sbog
У тебя код приезжает в реджистри же в итоге. Я прод с "latest" не тяну.
G72K
*рядом с кодом
sbog
Ну держишь ты его рядом с кодом. А доставку кода ты как организовываешь?
sbog
Вот выкатили в прод новую версию, оказалось, что есть проблема. Как делать роллбэк, ждать, пока разрабы регрессию пофиксят?
Terry
ребята, нужен совет - лепить контейнер для wordpress в гугл клауде есть смысл? или лучше свой контейнер в kubernetes запустить уже притготовленный свой личный?
Victor
Ну а как быть с секретами внешних сервисов ?
Я из переменных окружения беру --set API_TOKEN=$API_TOKEN
Dmitry
Я из переменных окружения беру --set API_TOKEN=$API_TOKEN
Да блин. А как они туда попадают?
Victor
Да блин. А как они туда попадают?
Конкретно у меня они в gitlab variables хранятся
Victor
в circleci собственно так же
Dmitry
Понял. То есть любой кто имеет доступ к этому проекту может прочитать переменные
Dmitry
Ну, в теории
Victor
Понял. То есть любой кто имеет доступ к этому проекту может прочитать переменные
Конкретно в gitlab их могут видеть только админы, обычные девелоперы их не видят
Victor
а как же echo $VAR в проекте (во время сборки)?
у нас конфиги лежат в ops папке и есть git server-hook который проверяет права тех кто его менял + gitlab variables можно поставить флаг protected тогда она будет доступна только в protected ветках/тегах которые создает мастер/овнер
Dmitry
Ааа, хорошо. Уже несколько раз такую стратегию вижу, когда защищенная ветка хранит конфиги сборки 🙂
Dmitry
Потому что я все в отдельной репе храню, и почти всегда это работает. Но иногда хочется чего-то лучше...
Dmitry
Спасибо всем в чатике. Базу прям хорошо внушили)))
Dmitry
Вдохновляет возможность задеплоить с нуля ваще ВСЕ. "Дай мне ip 2х сервантов, сделаю че надо".. И минимальный риск косяков среды, т.к. все контейнеризированоо
Dmitry
😄
Sergey
Ребят, тут кто-то давече писал про Bootkube, я что-то по диагонали не нашел как он реаизовывает HA мастер
Sergey
сразу говорю я особо не вчитывался, бегло с ходу не нашел
G72K
Ребят, тут кто-то давече писал про Bootkube, я что-то по диагонали не нашел как он реаизовывает HA мастер
Я писал, bootkube ничего не реализовывает, он создает и загружает в кластер то, что вы подсунете ему в директории manifests
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 для ингреса? Если используете, то как у вас с алиасами?
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
Зачем ему композ?
ему не нужен, но мне удобнее
Anonymous
а какую rollingUpdate заюзать если я хочу чтобы при деплое был только один под доступным из старых?
Anonymous
а как получить ip ноды? kubectl get nodes -o jsonpath='{ $.items[*].status.addresses[?(@.type=="ExternalIP")].address }' не помог
Terry
Добрый день. Вопрос к участникам - кто юзает google app engine для своих сайтов и сервисов вместо docker и kubernetes?