Juriy
кто выигрывает?
Те которые в красных шлемах :)
Andrei
ну вот надо в комплексе - как организуют репо, как собирают helm, скрипты апдейтов, как накатывают, как следят за накатом и прочее
Обычная схема в три шага: код который работает и с обеими версиями схемы данных, миграция через job, новый код только для новой версии схемы. Job из CI можно дергать ручками
Denis
А чо не в жёлтых штанах ? )
Juriy
А чо не в жёлтых штанах ? )
Это из другого фильма, темболее малиновые штаны круче.
Andrey
с кем можно поговорить по поводу организации CD в кубер без остановки приложения при миграции баз?
если приложение поддерживает миграцию без downtime, просто запихай в инит скрипт в образе
Anonymous
Привет! Выкатили в опен сорс софт Cоntainterum, работает поверх Kubernetes, дает удобный UI, CI/CD pipelines, командную работу над проектами, revision control. https://github.com/containerum/containerum/ для развития проекта, нужны звезды в репозитории, если не сложно, буду очень благодарен)
Denis
Народ, а для CI в k8s кто нибуть использует сторонние инструменты, кромн хелма?
Igor
codefresh
Igor
helmfile
Igor
chamber (для секретов) но мы на aws )
Andrey
С ksonnet был у кого опыт?
Denis
helmfile
Спасибо. И как без глюков работает?
Igor
базовый функционал да
Igor
но вообще есть "особенности"
Igor
это ж обертка над helm и все его пороки прилагаются
Igor
например проблема с типами данных которые передаются через --set
Igor
счас починили более менее сделали какой то ---set-string
Igor
вообщем вполне живой
Denis
вообщем вполне живой
Спасибо поразбираюсь. Думаю это самое то, для тех кто юзает helm базовым для CI
Denis
Народ, а кто нибуть дружил эту штуку с консулом? https://github.com/skuid/helm-value-store
Andrey
Все привет. ТАкая вот проблемка
Andrey
куб кластер 1 мастер и 2 воркера грохнул одного воркера под, который там крутился, в состоянии unknown удаляю этот под - уже минут 15 висит
Andrey
заранее спасибо за советы куда можно копать
Bsod
куб кластер 1 мастер - хорошая рифма
Andrey
:)
Denis
заранее спасибо за советы куда можно копать
Если не поможет то вот так попробуй kubectl patch pod $POD -p '{"metadata":{"finalizers":null}}'
Andrey
@denyasmail Спасибо огромное ща буду пробовать
Oleg
Вот к примеру следующая последовательность изменений: 1. Запуск джобы, которая запускает миграцию, которая добавляет новую колонку в таблицу 2. Деплой через helm приложения, которое работает со старой колонкой, но умеет писать в новую колонку 3. Запуск джобы, которая заполняет новую колонку 4. Деплой через helm приложения, которое работает только с новой колонкой 5. Запуск джобы, которая удаляет старую колонку Итого три миграции и два деплоя приложения в строгой последовательности. Кто как для этого случая организует репо, артефакты, как выкатывает? @mxssl @im_xray33 @gorilych @yurik687 @shursh @StalkerNOVA
Anton
куб кластер 1 мастер и 2 воркера грохнул одного воркера под, который там крутился, в состоянии unknown удаляю этот под - уже минут 15 висит
если у вас погасла нода, kubernetes сочтет хорошим тоном если вы удалите ее из кластера kubectl delete node <NodeName> и перераспределит ваш под. Когда нода снова зажжется, она сама добавится в кластер, если с ней все (стало) ок.
Vadim
еще https://github.com/kubernetes-incubator/descheduler/blob/master/README.md может быть полезен
Andrey
@denyasmail Спасибо Денис ПОМОГЛО! kubectl delete pods $POD --grace-period=0 --force
Andrey
Какая версия куба и дашборды?
Dashboard Version: v1.8.3 Kubernetes: v1.10.4
Egor
всем привет. в эфире снова любознательный куберовод. 3 ноды на baremetal. Хочу сделать Deployment (replicas: 3) с общим стораджем. раскатал rook-ceph. Создал PV с типом ReadWriteMany, вписал монтирование pv в Deployment, но запускается только 1 экземпляр, остальные 2 висят ждут. ЧЯДНТ ?
Oleh
всем привет. подскажите такой момент - с поды стучусь на ингресс с самоподписанным сертом, но вместо сгенеренного мной серта мне отдаётся другой - Kubernetes Ingress Controller Fake Certificate. при этом с мира отдаётся мой серт. почему подам отдаётся не тот серт что я выдал ingress? не могу найти описание этой логики в доках. я так понимаю если серт будет валидный загружен с поды он всё равно будет фейк виден, и она будет на него ругаться ...
Andrey
Dashboard Version: v1.8.3 Kubernetes: v1.10.4
https://github.com/kubernetes/dashboard/wiki/Compatibility-matrix ничего неизвестно о поддержке 1.10 куба в борде 1.8
Denis
Люди, а кто кубспреем добавлял вокреров? Прогнал по докам cluster.yml с измененным инвентори , на новом ноде все установилось , кублет настроенный, но машина в кластер не присоеденна
Oleh
Ингресс-ресурс в студию и по одинаковым ли доменам стучишься
apiVersion: extensions/v1beta1 kind: Ingress metadata: annotations: nginx.ingress.kubernetes.io/secure-backends: "true" creationTimestamp: 2018-07-24T07:40:50Z generation: 3 name: helm-test namespace: test uid: e2f7f6a7-8f14-11e8-a8c8-0a58ac1f004f spec: backend: serviceName: test servicePort: 443 rules: - host: test.test http: paths: - backend: serviceName: test servicePort: 443 path: / tls: - hosts: - test.test secretName: test выглядит он так в поде прописан этот домен через hosts, указан внешний IP ингресса
Egor
Посмотри тут на табличку: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistent-volumes RBD не поддерживает ReadWriteMany
пнятно.. а как-то вообще можно обеспечить общий сторадж для подов?
Andrey
там же написано: gluster, cephfs...
Egor
я почему-то подумал, что раз rook создал ceph-кластер, то это и есть cephFS
Andrey
у ceph'а есть RBD, cephfs, RADOS GW
Andrey
cephfs ~= NFS
Oleh
вообще, тот дефолтный серт выдается в двух случаях 1) нет tls сикрета 2) домен не подходит под hosts в tls
в том то и беда что оба варианта отметаются тем что со стороны моего браузера всё хорошо... спасибо, буду еще думать
Dmytro
у нас аналогично, только этот под создается из job и все это завернуто в хелм чарт. Т.е. запуск миграций это одна команда на инстал хелм чарта (сам скрипт миграции пишет свой прогресс в слак т.к. миграция может бежать много часов а то и дней)
Dmytro
и тогда пункты 1, 3 и 5 можно объединить в одну джобу
Mikhail [azalio]
А подскажите по helm. У меня RBAC и я собираюсь установить тиллер с сервисным аккаунтом metadata: name: tiller namespace: kube-system - оно сможет ставить приложения в любые неймспейсы или только в kube-system?
Mikhail [azalio]
спасибо!
Mikhail [azalio]
--- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metadata: name: tiller roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: tiller namespace: kube-system
Sergei
тогда в любые, потому что у вас прибинден cluster-admin
Andrey
привет такая фигня - после рестарта большого количества под кубернетес пытается их поднять на одной ноде - с печальными последствиями нода уходит по LA и памяти как бы ему сказать этого не делать
Andrey
ну еще 2 ноды да
cent
А кто-то пробовал поставить локально kubernetes? Почему scheduler не может раздать ip для пода? default-scheduler 0/1 nodes are available: 1 node(s) had taints that the pod didn't tolerate.
Andrey
причем потом он сам без каких то действий особых просирается и раскидывает по ним
Andrey
но довольно долго тупит
Pavel G
ну еще 2 ноды да
своп выключен?
Andrey
своп выключен
Pavel G
Похоже просто очень. А лимит по памяти сколько стоит? 90?
Andrey
Вот к примеру следующая последовательность изменений: 1. Запуск джобы, которая запускает миграцию, которая добавляет новую колонку в таблицу 2. Деплой через helm приложения, которое работает со старой колонкой, но умеет писать в новую колонку 3. Запуск джобы, которая заполняет новую колонку 4. Деплой через helm приложения, которое работает только с новой колонкой 5. Запуск джобы, которая удаляет старую колонку Итого три миграции и два деплоя приложения в строгой последовательности. Кто как для этого случая организует репо, артефакты, как выкатывает? @mxssl @im_xray33 @gorilych @yurik687 @shursh @StalkerNOVA
сложно. Сделай в поде инит контейнер, который делает миграцию, и всё. Все эти пляски с бубном нужны если у тебя приложение нетолерантно к миграциям и жёстко привязана к схеме базы. Единственно, если у тебя миграция может выполнятся только в единственном числе, сделай выкат так, чтоб при новом релизе запускалась сначала одна реплика.
Andrey
но там джава она такая
cent
Посмотри в describe node что за тейнты там стоят
Вроде как решил каким-то хаком. Я просто не особо понял что такое тейнт в принципе?