@kubernetes_ru

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

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

что говорят?

ещё kube-proxy такую ошибку пишет Failed to execute iptables-restore for nat: exit status 1 (iptables-restore: line 7 failed
тут похоже на проблемы с нодой, нужно пойти на ноду по ссш посмотреть логи и тп - что там. Если облако то проще ее убить

Дмитрий
25.05.2018
09:39:02
kubectl logs runner-aa5716a7-project-181-concurrent-1swp8h или kubectl logs --previous runner-aa5716a7-project-181-concurrent-1swp8h
Error from server (NotFound): pods "runner-aa5716a7-project-181-concurrent-1swp8h" not found

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
я понимаю что докера но может у них там trunk based development - билдят образ, деплоят на дев и потом промоутят на стейдж и прод и тд
ну вот меня сам процесс и интересует, я не знаю как и ищу решение, хоть направление

Dmytro
25.05.2018
09:58:14
а с миллионом веток и мердж коммитами подход с промоутом артефактов через энвайроменты не подходит имхо

у нас есть ветки но билдится образ только из мастера, гонятся тесты, если прошли то деплоится на дев-стейдж (5 штук)

потом у нас 19 прод инстансов - деплоим на них по очереди, если количество ошибок после деплоя за Х минут меньше Y

этакий канари rollout

Konstantin
25.05.2018
10:00:31
у нас есть ветки но билдится образ только из мастера, гонятся тесты, если прошли то деплоится на дев-стейдж (5 штук)
вот я пока к примерно этому варианту тоже пришёл, а изначально не туда завернул.

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
да не за что, не сказать что какая-то супер идея. Есть подход разворачивать под каждую ветку в кубе приложение в новом неймспейсе, со своим поддоменом и тп - может вам такое нужно? Но вот как они дальше катят артефакты не знаю, скорее всего тоже потом из мастера билдят новый артефакт и выкатывают сначала на стейджинг
ну изначально вопрос был - как иметь один артифакт между ветками, но видимо тут надо выпасть из мира на недельку-другую. Я максимум смог через MergeRequest ловить входящий коммит и использовать его как TAG, но мержи разные бывают и можно прошляпить

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

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

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

Дмитрий
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 крутится в кубе, но там буквально пару десятков гиг

А доступ к диску как оформлен?
PVC шаблон, EBS volume создается динамически но deletion policy стоит не удалять

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

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

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

Dmytro
25.05.2018
11:08:08
а кто провайдер? как решаете проблему шедулинга подов стейтфулсета на одной ноде? через афинити?
у меня куб старый, 1.5 - там афинити не было вроде ещё. Тут 2 момента: 1. dynamic volume provisioner будет создавать вольюмы раунд робином во всех AZ в которых есть ноды, т.е. минимум 2 ноды разные будут 2. Для небольших репликасетов может выйти что 2 реплки на одной ноде, для той что побольше нет т.к. ноды у меня по 120 гиг а этот репликасет хочет 75 гиг рама

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

не уверен что так вообще может случиться, ASG по идее создаст инстанс в той же AZ где была убита нода (но могу ошибаться)

Konstantin
25.05.2018
11:11:50
не уверен что так вообще может случиться, ASG по идее создаст инстанс в той же AZ где была убита нода (но могу ошибаться)
нет, он в принципе очень хреново умеет работать с EBS дисками по ощущению. так что да, создает их так что порой мешает. аффинити через размер ОЗУ и request mem ваще интересное решение в условиях отсутствия аффинити

спасибо

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, потом маунтит и всё становтися хорошо. Вот только так долго ждать нельзя. Как можно это обойти?

Aleksey
25.05.2018
12:11:32
имхо цеф лочит rbd, кажись туда копать
точно нет, локи на цефе смотрел, их там нет

Konstantin
25.05.2018
12:12:58
точно нет, локи на цефе смотрел, их там нет
а доступ есть? попробуй уронить ноду с pv и на другой руками замаунтить rbd? чот помню было похожее, под рукой нет

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

Aleksey
25.05.2018
12:18:26
куб говорит цефу, что замаунтил и цеф лочит на него. Если нода hard-reset, то команды на релиз нет и цеф всё ещё дрежит для него. Мысли в слух, может где-то и в pvc ковырять надо
в целом всё как вот тут: https://stackoverflow.com/questions/49942285/how-respawn-a-pod-with-persistent-volume-which-stuck-on-failed-node-in-kubernete вот только вопрос в том, может кто нашёл какой-то воркэраунд

в целом всё как вот тут: https://stackoverflow.com/questions/49942285/how-respawn-a-pod-with-persistent-volume-which-stuck-on-failed-node-in-kubernete вот только вопрос в том, может кто нашёл какой-то воркэраунд
очень похоже вот на это: The automatic volume detach process does not kick in until kubernetes marks the node as down (5 min 40 sec), once this happens and the original pod is deleted then the attach/detach controller waits 6 minutes to ensure the node is not back before the volume is detached (meaning 11 minutes after the original node goes down for the detach process to automatically kick off). но всё также хочется какого-то решения

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

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
наверняка есть лучше способ передавать переменные в деплоймен?

Alexey Pantin
25.05.2018
13:23:49
да

Mikhail
25.05.2018
13:24:16
наверняка есть лучше способ передавать переменные в деплоймен?
Насколько я знаю - нет. И 3 дня в неделю тоже говорят об этом

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

а если надо быстро и просто то таким скриптом

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

Чтобы сетить дату? Поды пересоберутся?
через set можено менять любое поле в деплойменте

Mikhail
25.05.2018
13:27:04
тогда можно тегать образ номером сборки и через хелм обновлять
У меня поинт был именно в том, чтобы использовать latest

Страница 581 из 958