
Maksim
25.05.2018
09:17:16
и посмотри что оно там пытается сделать

Andrey
25.05.2018
09:17:55
да скорее всего у nginx read_timeout)

Dmytro
25.05.2018
09:22:11

Google

Dmytro
25.05.2018
09:22:23
контейнер еще не стартанул

Дмитрий
25.05.2018
09:22:48
не, он потом типа запустился
пода gitlab-runner-8b8bc9c48-knl4b запускает поду runner-aa5716a7-project-181-concurrent-1swp8h
но где запускат и как в неё посмотреть не понятно
ещё kube-proxy такую ошибку пишет
Failed to execute iptables-restore for nat: exit status 1 (iptables-restore: line 7 failed
не знаю связано это или нет

Andor
25.05.2018
09:33:09
Збс

Dmytro
25.05.2018
09:36:43
kubectl logs runner-aa5716a7-project-181-concurrent-1swp8h или kubectl logs --previous runner-aa5716a7-project-181-concurrent-1swp8h
что говорят?

Дмитрий
25.05.2018
09:39:02

Dmytro
25.05.2018
09:50:51
а точно он смог запустится?
если логов даже с --previous нет то есть подозрение что не смог (или нода настолько сломана что с нее логи не тянутся или еще что)

Google

Konstantin
25.05.2018
09:53:28
Dmytro вот вчера наткнулся ещё раз на запись с конфы от Флантов, они собирают один образ и дальше его продвигают, RedHat тоже об этом говорит, да и вообще много бест практик на эту тему, но у всех вода. Так надо, а как сделать - даже направления нет))

Dmytro
25.05.2018
09:54:26
один образ чего? а то я что-то потерял контекст

Konstantin
25.05.2018
09:55:44
образ докера же


Дмитрий
25.05.2018
09:57:20
логи из kubelet
uberuntime_container.go:66] Can't make a ref to pod "runner-aa571....", container helper: selfLink was empty, can't make reference
status_manager.go:446] Failed to update status for pod "runner-aa57.....": Operation cannot be fulfilled on pods "runner-aa57....": the object has been modified; please apply your changes to the latest version and try again
docker_sandbox.go:343] failed to read pod IP from plugin/docker: NetworkPlugin cni failed on the status hook for pod "runner-aa57.....": Unexpected command output nsenter: cannot open /proc/30965/ns/net: No such file or directory
with error: exit status 1
weave-cni: error removing interface "eth0": nsenter: cannot open /proc/30965/ns/net: No such file or directory : exit status 1
weave-cni: unable to release IP address: 400 Bad Request: Delete: no addresses for 13cf....


Dmytro
25.05.2018
09:57:27
я понимаю что докера но может у них там trunk based development - билдят образ, деплоят на дев и потом промоутят на стейдж и прод и тд
у нас так сделано

Konstantin
25.05.2018
09:58:06

Dmytro
25.05.2018
09:58:14
а с миллионом веток и мердж коммитами подход с промоутом артефактов через энвайроменты не подходит имхо
у нас есть ветки но билдится образ только из мастера, гонятся тесты, если прошли то деплоится на дев-стейдж (5 штук)
потом у нас 19 прод инстансов - деплоим на них по очереди, если количество ошибок после деплоя за Х минут меньше Y
этакий канари rollout

Konstantin
25.05.2018
10:00:31

Dmytro
25.05.2018
10:00:32
но у нас внутренняя тулза для сотрудников, если даже что-то отвалилось (и не поймано было тестами) то не так критично

Konstantin
25.05.2018
10:01:31
у фланта в гитхабе все исходники, вики, всё описано, но часть CI\CD - TODO ))

Dmytro
25.05.2018
10:02:11
ну флант же деньги берет с людей, им все наработки выкладывать ен с руки

Konstantin
25.05.2018
10:03:04
не, я говорю что есть, плохо это или хорошо - уже другой вопрос

Dmytro
25.05.2018
10:09:12
да не за что, не сказать что какая-то супер идея. Есть подход разворачивать под каждую ветку в кубе приложение в новом неймспейсе, со своим поддоменом и тп - может вам такое нужно? Но вот как они дальше катят артефакты не знаю, скорее всего тоже потом из мастера билдят новый артефакт и выкатывают сначала на стейджинг

Google

Konstantin
25.05.2018
10:12:22

Dmytro
25.05.2018
10:20:57
я считаю что переюзать артефакты из другой бранчи - это плохая идея по многим причинам, и лучше не связываться

kyxap
25.05.2018
10:52:05
судари, а расскажите про ваши неудачи с "засунуть СУБД в куб и горя не знать"

Дмитрий
25.05.2018
10:53:42
Я сейчас слил проект в папку, создал у себя пустой проект, залил туда файлы и запустил пайплайн.
Он отработал очень быстро, без ошибок.
Все нужные поды поднялись в лёт.
Какие-то глюки гитлаба бяли

Dmytro
25.05.2018
10:53:56
могу про удачи рассказать только

Дмитрий
25.05.2018
10:56:01
Гитлаб кривой

Konstantin
25.05.2018
10:56:22

Dmytro
25.05.2018
11:01:07
монго крутится в statefulset уже больше года
всего у меня сейчас в проде крутится 2 репликасета маленьких (меньше 1тб данных) и один средний на 2.5 тб

Mikhail
25.05.2018
11:02:35
А доступ к диску как оформлен?

Dmytro
25.05.2018
11:02:37
еще у меня небольшой инстанс influxdb крутится в кубе, но там буквально пару десятков гиг

Konstantin
25.05.2018
11:03:38
а кто провайдер? как решаете проблему шедулинга подов стейтфулсета на одной ноде? через афинити?

Nazar
25.05.2018
11:03:51
не туда)

Stanislav
25.05.2018
11:03:53

Konstantin
25.05.2018
11:04:14
выставлением стейтфулсету аффинити на конкретную AZ? ?

Dmytro
25.05.2018
11:08:08

Google

Dmytro
25.05.2018
11:09:41
как решаете multi-az ремаунт?
Специально никак не решаю, в этом кластере крутятся ещё приложения и сейчас 7 нод - не было такого чтобы нода умерла, новая поднялась в другой AZ а вольюм некуда прикрутить
не уверен что так вообще может случиться, ASG по идее создаст инстанс в той же AZ где была убита нода (но могу ошибаться)

Konstantin
25.05.2018
11:11:50
спасибо

Dmytro
25.05.2018
11:14:38
колхозно конечно, но с другой стороны больше года в прод и пока полёт нормальный. В дальних планах есть идея вынести монгу из кластера куда-то на отдельную ASG (соседняя команда должна когда-нибудь сделать терраформ модуль для этого, но посмотрим)
почему - dynamic volume provisioner не умеет в xfs фаорматировать
плюс пришлось навернуть sysctl на свю ноду типа huge pages, что может быть не очень хорошо для других приложений в этом кластере
поэтому если будет возможность - я все-таки бы монгу вынес из куба
influx маленький и никаких проблем держать его внутри кластера пока не вижу

Andor
25.05.2018
12:00:42
блин, я думал речь будет про базы данных, а там про монгу и инфлюкс

Aleksey
25.05.2018
12:03:45
Приветствую. Можете подсказать по поводу Persistent Volume. Имеется statefulset с репликой 1(так как нельзя таких 2 пода поднимать). Ему из ceph подключается pv. После падения ноды под пересоздаётся, но замаунтить pv никак не может, где-то минут 10, потом маунтит и всё становтися хорошо. Вот только так долго ждать нельзя. Как можно это обойти?

Konstantin
25.05.2018
12:11:06

Aleksey
25.05.2018
12:11:32

Konstantin
25.05.2018
12:12:58

Aleksey
25.05.2018
12:13:53

Konstantin
25.05.2018
12:16:23
там лок держит kubernetes ибо pvc в Bound
куб говорит цефу, что замаунтил и цеф лочит на него. Если нода hard-reset, то команды на релиз нет и цеф всё ещё дрежит для него. Мысли в слух, может где-то и в pvc ковырять надо

Aleksey
25.05.2018
12:18:26


Dmitrii <freehck>
25.05.2018
13:10:00
Привет, народ.
Хотел спросить, можно ли при помощи Dashboard UI заставить обновиться деплойменты?
Я выкладываю новые контейнеры в тегом latest. Мне нужно, чтобы кубер перевыкачал эти контейнеры и запустил их в деплойменте.

Михаил
25.05.2018
13:18:09

Google

Mikhail
25.05.2018
13:20:35
В $DATE подставлять текущую дату всегда. deployment поменяется и передёрнется в кубере
DATE=$(date) envsubst < .ci/deployment.template.yml > .ci/deployment.yml
Я это вот так делаю в lgitlab-ci.yml
Через анус жопы, короче

Alexey Pantin
25.05.2018
13:22:51
У нас DevOps написла небольшой скриптик на shell для убийства подов, после убийства выкачивается новая версия из регистри
set +e
POD=$(kubectl get pods -n NAMESPACE | grep -E '^POD_NAME-[0-9]+.*$' —color=none | cut -d ' ' -f 1)
kubectl delete pods "$POD" -n NAMESPACE

Дмитрий
25.05.2018
13:22:55
наверняка есть лучше способ передавать переменные в деплоймен?

Mikhail
25.05.2018
13:23:39

Alexey Pantin
25.05.2018
13:23:49
да

Mikhail
25.05.2018
13:24:16

Alexey Pantin
25.05.2018
13:24:28
вакатку на боевые делаем через изменение тега образа у деплоймента
а если надо быстро и просто то таким скриптом

Дмитрий
25.05.2018
13:25:11

Mikhail
25.05.2018
13:25:25
Ну как-то в тестинге тоже не хочется ронять всё разом

Alisa
25.05.2018
13:26:04
сколько ресурсов вы отдаете gitlab-ci runner в kubernetes, чтобы добиться его максимальной производительности?

Mikhail
25.05.2018
13:26:10
Чтобы сетить дату? Поды пересоберутся?

Alexey Pantin
25.05.2018
13:26:15
тогда можно тегать образ номером сборки и через хелм обновлять

Дмитрий
25.05.2018
13:26:20
пример
kubectl delete po -l name=имя_деплоймента -n prod

Mikhail
25.05.2018
13:27:04