kay
Вообще для меня было сюрпризом, что до сих пор никто ничего толкового не придумал. Все используют shell+kubectl
Artem
зачем изобретать велосипед, чем kubectl плох?
Салтыдык
ну так-то можно и курлом, если уж по-хипстерски
kay
зачем изобретать велосипед, чем kubectl плох?
всё бы хорошо, если бы не kubeconfig
kay
перед использованием kubectl нужно kubeconfig подготовить.
kay
а хочется в jenkins просто выбирать secrets для нужного тебе кластера и namespace
kay
у меня кластеров много.
kay
сейчас зоопарк обвязок deploy.sh для каждого проекта. с содержимым типа: cat > "${K8S_CONFIG}" <<- EOM apiVersion: v1 clusters: - cluster: certificate-authority: /data/docker/k8s-ca.pem server: https://1.2.3.4 name: ${K8S_CONTEXT} contexts: - context: cluster: ${K8S_CONTEXT} user: jenkins name: ${K8S_CONTEXT} current-context: ${K8S_CONTEXT} kind: Config preferences: {} users: - name: jenkins user: client-certificate-data: ${K8S_CERT} client-key-data: ${K8S_KEY}
kay
вот поставил, изучаю и что-то не могу найти требуемый пример
Etki
да я уже увидел, что там что-то не то
Etki
с дженкинсом, к сожалению, пока приходится ковырять исходный код, чтобы увидеть как с этим все работать
nvkv
перед использованием kubectl нужно kubeconfig подготовить.
мы тупо храним на s3 готовые конфиги, в одной из фаз билда стягиваем на билд-машину
nvkv
костыль, конечно
nvkv
но работает отлично
kay
а еще нет возможности изкоробки сохранять все изменения манифестов ыв репу
nvkv
ето да
Zon
двавай
https://gist.github.com/iMelnik/9903073829046829c3eb8111129e7248 как-то так. "Я не настоящий сварщик"
kay
если понравится, создам репу запилю автоматизацию и будет готовый проект
Zon
👍
Zon
я хотел гугловую авторизацию прикрутить, но остановился на том что есть
Zon
инкластер должно заводиться без бубна
Михаил
Helm же
OpenShift!
Михаил
G72K
OpenShift!
Разные весовые категории же :)
Михаил
kay
Openstack вас победит
Михаил
Openstack вас победит
а что там кроме juju есть для кубика?
Михаил
из живого
kay
aws :)
kay
даёшь больше названий проектов.
Zon
Helm же
Да, я думал тиллер напрямую дергать, но решил что это немного перебор для моей задачи. хотя есть https://github.com/AcalephStorage/rudder
Михаил
даёшь больше названий проектов.
ну я хотя бы попытался остаться в рамках твоего вброса)
kay
вброс: унифицировать и упростить деплоймент для множества кластеров и namespaces. избавиться от bash скриптов
Михаил
без подробностей сложно помочь
Zon
вброс: унифицировать и упростить деплоймент для множества кластеров и namespaces. избавиться от bash скриптов
Пиши скрипты на чем-то другом... я пока это делаю на питоне, хотя на Го, было бы проще эксплуатировать, наверно
kay
либо настраивать kubectl исключительно используя environment variables и избавиться от kubeconfig. так можно?
kay
и запилить set of secrets в jenkins на все случаи жизни
kay
http://stackoverflow.com/questions/41433577/how-to-authenticate-kubectl-using-environment-variables
kay
Пока только такое решение для себя нашел: curl -v -XPUT -H "Content-Type: application/json" "${KUBE_API_URL}/apis/extensions/v1beta1/namespaces/${NAMESPACE}/deployments/${DEPLOYMENT}" --cacert <(echo "${BASE64_CA}" | base64 -d) --cert <(echo "${BASE64_CERT}" | base64 -d) --key <(echo "${BASE64_KEY}" | base64 -d ) -d@<(python -c 'import sys, yaml, json; json.dump(yaml.load(sys.stdin), sys.stdout)' < deployment.yml)
kay
голый yaml с Content-Type: application/yaml у меня почему-то не проглатывается
Etki
майм-тайп вроде x-yaml, емнип
Etki
disregard that, в своггере просто application/yaml
yolkov
если в одном клатере все, то для kubectl можно без секретов, через serviceaccount
Sn00part
мегафон так и лежит. я слышал они там как раз k8s начали внедрять бгг
Vitalii
вброс: унифицировать и упростить деплоймент для множества кластеров и namespaces. избавиться от bash скриптов
Хороший вброс. У нас проблема деплоя давно, т.к. он сильно сложнее kubectl apply. Сейчас пытаемся построить связку bazel, helm, gitlab-ci. И связать это все своим консольным приложением, в котором вся логика
Anonymous
deis?
Igor
deis?
А как жить с deis без AWS, GCS и т.д?
Anonymous
Он к ним не приаязан
Igor
A variety of Deis Workflow components rely on an object storage system to do their work, including storing application slugs, Docker images and database logs.
Igor
Т.е workflow требует AWS...
Anonymous
slugs не нужны если докерами деплоить, docker registry можно свой подсунуть... ну да, там надо в настройках bucket указывать но в целом есть знакомые которые на bare metal это держат
Anonymous
Самому интересно стало надо будет спросить
KlonD90
А насколько мне поможет такая штука как https://coreos.com/tectonic/ ?
Olsen
https://github.com/alekssaul/minikube-tectonic/blob/master/minikube-up.sh
Dmitry
Всем привет А есть какой-то способ сконфигурить readiness и liveness probes так, что бы они при старте чекали под и не фейлили его пока он не поднимется или пока не пройдет какой-то таймаут? При старте пода вначале запускаются скрипт прогревания кеша, а потом уже сам апликейшн. Кеш может прогреваться и 2 минуты и 5 минут. Сейчас поставил initialDelaySeconds в 5 минут и получается в любом случае, даже если апликейшн будет ready через 2 минуты, первый чек пойдет только через 5 минут и только после этого он будет включен в балансер.
Vitalii
если я правильно понял, то initialDelaySeconds нужно поставить только для livenessProbe
Dmitry
тогда оно фейлит под на этапе инициализации
Zon
Может прогрев кеша вынести в инит-контейнер?
Dmitry
хм, идея неплоха, спасибо. Кеш - это файл у меня, осталось только еще видимо через volume его копировать между контейнерами
Vitalii
сюрпризы, это когда они зависают при старте и всё?
G72K
нет, это когда их обновляешь, делаешь kubectl apply, а ничего не происходит
G72K
в итоге выясняется, что только обновления image перезапускают под :)
G72K
любые другие параметры -нет. Учитывая что у меня init containerы были /bin/sh -c 'abc', было занятно
Dmitry
Инит конейнерв не без сюрпризов. Сделайте readinessCheck через exec скрипта
тоже неплохая идея, только мне кажется что между окончанием работы скрипта инициализации и запуском апликейшна (php-fpm) теоритически возможен даунтайм
Dmitry
в итоге выясняется, что только обновления image перезапускают под :)
У меня helm.sh и номер релиза в аннотациях, так что при каждом деплое идет rolling update подов
G72K
У меня helm.sh и номер релиза в аннотациях, так что при каждом деплое идет rolling update подов
при каждом релизе все поды рестартите, даже если ничего не поменялось?
Dmitry
да, т.к. во-первых шанс что ничего не поменялось очень мал, если бы релиз, а во-вторых т.к. идет rolling-update на апликейшене это почти никак не сказывается
Denis
https://www.facebook.com/danikin2/posts/1576256925752703
Denis
Кто уже сетапил Кубер в Infra? ;)
KlonD90
вот да сегодня прочел
KlonD90
что за тема с infra
KlonD90
Аникина в тред плиз