@kubernetes_ru

Страница 929 из 958
Stanislav
20.10.2018
16:55:31
А оракл вообще в контейнер лезет?

bebebe
20.10.2018
16:56:17
А оракл вообще в контейнер лезет?
Я видел статьи что можно засунуть. Только зачем? У любого DBA крыша потечёт от такого

Stanislav
20.10.2018
16:56:41
Именно для этого :-) Знакомому DBA показать :-)

Google
Grisha
20.10.2018
16:59:00
Соответственно, если сеть подов доступна, поды можно публиковать как headless сервис и получать все недостатки балансировки через DNS, но и все профиты от отсутствия ната где бы то ни было.
в итоге, из того что я понял, без определенных сношений с таблицой маршрутиации нет возможности выделить сервису адрес из сети ноды?

Vlad
20.10.2018
17:00:10
А оракл вообще в контейнер лезет?
Отлично лезет. Можно скачать здесь: https://store.docker.com/images/oracle-database-enterprise-edition

Никита
20.10.2018
17:01:45
Grisha
20.10.2018
17:03:27
Получаете чтобы сильно не рукоблудить кубер ноды с ингризом или сервисами нужно поднимать в отдельных ВМ и натить

это конечно не снимет нат оверхеда, но хотя бы не запутает по ip

Никита
20.10.2018
17:05:24
Да не, ну там же просто всё. С дефолт гейтвеем пиришься по BGP и всё. Это звучит сложно, а по факту там настроек - AS и IP пира на кластере, ну и с десять строк в конфиге дефолт гейтвея, каким бы он ни был.

И всё, устанавливается tcp-соединение и в нём передаются маршруты.

bebebe
20.10.2018
17:08:10
BGP это еще одна абстрация которая может пойти по пизде
Не хватает только гластерфс и арубахостинга

Grisha
20.10.2018
17:08:24
Не хватает только гластерфс и арубахостинга
та видимо и это прийджется педалить)

Stanislav
20.10.2018
17:10:18
Мда... Вот какие у вас нагрузки, да ещё с контейнерами, что вам штатный нат мешает?

Никита
20.10.2018
17:11:32
BGP это еще одна абстрация которая может пойти по пизде
BGP в любом случае внутри кластера работает, если у тебя calico или kube-router.

Google
Grisha
20.10.2018
17:11:57
BGP в любом случае внутри кластера работает, если у тебя calico или kube-router.
пока юзаю фланель, не дошел еще до изучения сети кубера

в плане выбора драйвера

Никита
20.10.2018
17:12:27
В случае flannel роль BGP-демона выполняет демон flannel.

Мда... Вот какие у вас нагрузки, да ещё с контейнерами, что вам штатный нат мешает?
Нат - это стейт. Например, обратный трафик из пода должен обязательно пройти через тот балансер, через который он попал в под.

Ну и там очевидные минусы в духе "следить за таблицей соединений".

Но я не говорю, что НЕТ НАТ НЕЗЛЬЗЯ, просто надо понимать, как его использование на что будет влиять.

Vadim
20.10.2018
17:18:52
Stanislav
20.10.2018
17:20:53
Ну то есть, это такая попытка не ставить отдельный фронтенд вне кубера для публичного сервиса? Просто в случае, если сервис непубличный, нат вряд ли хоть как-то заметно повлияет на работу - просто не будет такого количества соединений.

Grisha
20.10.2018
17:22:07
Мне просто чужда идея для nginx фронта использовать адрес ноды

Stanislav
20.10.2018
17:22:37
А почему, собственно?

Впрочем, да, это внутри кубернетеса практически.

Grisha
20.10.2018
17:24:36
просто прийдется пилить ингриз который смотрит на nginx который смотрит на node

лишняя итерация

Stanislav
20.10.2018
17:27:22
Выдели пару нод специально для nginx, по-моему, это будет проще, чем выделять дефицитные нынче белые адреса разбираться с BGP специально для того, чтобы избавиться от nginx вообще.

Тем более :-)

Vlad
20.10.2018
17:28:34
В openshift-же haproxy. Там где можно свои велосипеды сделали.

Stanislav
20.10.2018
17:31:00
А неважно, что там, haproxy или nginx, по-моему... Возможности пересекаются.

Grisha
20.10.2018
17:35:43
что такое этот ваш openshif?

Sergey
20.10.2018
17:35:54
что такое этот ваш openshif?
в нем все из коробки.

Google
Grisha
20.10.2018
17:36:10
а как чинить если что?

Banschikov
20.10.2018
17:38:56
Я слышал что он умеет image docker по хэшу перекачивать)

Banschikov
20.10.2018
17:40:24
куб тоже же умеет
Я тут просто уже не один раз задавал этот вопрос... Блин было бы круто понять как это сделать

Никита
20.10.2018
17:41:53
kvaps
20.10.2018
17:42:12
Никита
20.10.2018
17:43:51
Ну а чтоб поды обновились сами, надо updateStrategy выставить в RollingUpdate, например.

В спеке ресурса.

Banschikov
20.10.2018
17:45:07
image: example.org/myimage@sha256:c011cb2c4d597650093ecc5e72952446a8f5b23f9c1bc895de438f1ee6b4b26d
Наверное не правильно выразился( Сорян У нас image девелоперские метятся тегом develop, т.е тэг всегда одинаковый. K8s при обновлении релиза смотрит что тэг не изменился и ничего не делает. Я вышел из этой ситуации при помощи Helm, а точнее опции recreate pod и imagePullPolicy: Always

kvaps
20.10.2018
17:47:11
просто вместо тэга указываешь хэш, если такого image с этим хэшом на ноде нет, скачивается новый image

Banschikov
20.10.2018
17:53:51
а откатываться назад как?
Вот именно не как) Девелоперы исправляют косяки в коде и перезапускают CI. Там имейдж билдится заново и потом деплоится в кластер. ? Я дико уже ору чтобы деволопер сборки начать тегировать или там отдельные фич-ветки)

Vadim
20.10.2018
17:54:28
ну тогда прочитай уже про sha256 manifest

Banschikov
20.10.2018
17:56:08
ну тогда прочитай уже про sha256 manifest
Спасибо за подсказку, изучу этот момент. Просто ранее уже задавал этот вопрос тут, и мне кидали стикер " В openshif это из каробки" ?

Рил уже хочу этот Helm выкинуть куда подальше)

Vadim
20.10.2018
18:04:40
никакой магии там нет, просто есть imagestreams которые сами автоматически подставляют sha256sum в деплоймент

Banschikov
20.10.2018
18:12:57
никакой магии там нет, просто есть imagestreams которые сами автоматически подставляют sha256sum в деплоймент
Да я это понял. Сейчас смотрю в спеку пода в класте и вижу k8s прям по хэшу выкачивает имейдж: @sha256:f264342e00705fe2812f77decbb5fe547d29298deed469e9cf2e81842cf60010

Alexey
20.10.2018
18:13:49
Да я это понял. Сейчас смотрю в спеку пода в класте и вижу k8s прям по хэшу выкачивает имейдж: @sha256:f264342e00705fe2812f77decbb5fe547d29298deed469e9cf2e81842cf60010
да, я уже у себя так сделал. не делать docker push повторов и использовать sha256, чтобы не передергивать deployment зря.

Google
Alexey
20.10.2018
18:14:29
gitlab

Banschikov
20.10.2018
18:15:43
gitlab
Крутяк! Щас сижу доку чекаю, но так и не нашел переменную, которая бы в себе хранила хэш докер билда

Alexey
20.10.2018
18:16:11
там один минус, работает с 1 билд сервером, на двух уже расходится @vrutkovs подсказывал.

docker inspect --format="{{index .RepoDigests 0}}" image:tag

подробности думаю не сильно интересны.

RepoDigests появляется только после docker push

Vadim
20.10.2018
18:18:09
RepoDigest как-раз таки расходиться не должен

Alexey
20.10.2018
18:19:19
RepoDigest как-раз таки расходиться не должен
я не лажу в registry пока не уверен, что нужно. Это работает с 1 билд сервером. С 2+ придётся каждый раз лазить.

Banschikov
20.10.2018
18:24:23
там один минус, работает с 1 билд сервером, на двух уже расходится @vrutkovs подсказывал.
У нас один Gitlab Ci на проект, если имел в виду про это Спасибо за совет, реально работает)

Alexey
20.10.2018
18:25:13
я криво выразился. в общем docker inspect --format="{{index .RepoDigests 0}}" image:tag появляется после docker push и это то, с чем k8s сможет стянуть образ.

Banschikov
20.10.2018
18:26:49
Alexey
20.10.2018
18:28:39
По sha256 ещё можно смотреть нужно ли делать docker push. Экономит секунд 5, на монорепе ощутимо, стараюсь реализовать git push до running в кластере за <1min.

Banschikov
20.10.2018
18:33:28
По sha256 ещё можно смотреть нужно ли делать docker push. Экономит секунд 5, на монорепе ощутимо, стараюсь реализовать git push до running в кластере за <1min.
Понял, ну у нас с этим проблем особо нет. Есть стадия на которой смогу получать эту перемнную и потом в темплейт ее вставлять. Там Helm используется) Сначала формирую релиз при помощи sed -i , потому пушу его в репозиторий helm, и деплою его в кластер.

Alexey
20.10.2018
18:33:49
sed -i замена переменных?

Константин
20.10.2018
18:36:40
м

Banschikov
20.10.2018
18:41:26
sed -i замена переменных?
вот мой деплой в пайлайне: script: - export TAG="$(python3 /bin/release-tag.py)" - mv ./helm/chart ./helm/$CI_PROJECT_NAME - sed -i "s/{%version%}/$TAG/g" ./helm/$CI_PROJECT_NAME/Chart.yaml - sed -i "s/{%projectname%}/$CI_PROJECT_NAME/g" ./helm/$CI_PROJECT_NAME/Chart.yaml - sed -i "s/{%image_tag%}/$CI_BUILD_REF_NAME/g" ./helm/$CI_PROJECT_NAME/values.yaml - helm package ./helm/$CI_PROJECT_NAME - helm s3 push --force $CI_PROJECT_NAME-$TAG.tgz retail - helm s3 reindex retail - helm-values -u $GITLAB_URI - helmfile --selector release=develop sync

Timur
20.10.2018
18:43:04
Добрый вечер. Один небольшой вопрос Есть 1 pod в replicaset. На нем выполняется длительная задача и кубернетес убивает этот под, сразу поднимает новый. Никаких лимитов на ресурсы нет. Таймаут LIveness probe очень большой и сервис работает по логам стабильно. Где можно посмотреть причины дестроя? Может есть какая-то статья про такой траблшутинг. Подумал что в логах kubelet, но там ничего нет.

Timur
20.10.2018
18:43:40
а что дескрайбить, того пода уже нет

Google
Alexey
20.10.2018
18:43:47
kubectl get pod -a

Timur
20.10.2018
18:43:59
хах спасибо)

Banschikov
20.10.2018
18:44:27
envsubst уберёт 3 строки =)
Я помню ты советовал мне это) Щас перепиливаю деплой в кубер, думаю там это реализую) Щас главная цель выкинуть Helm

Timur
20.10.2018
18:44:46
Не там его нет. Это 7 часов назад произошло

Alexey
20.10.2018
18:44:52
всегда можно пойти на ноду и сделать docker ps -a, даже если не знать всех фишек куба (делал так, когда осваливался)

Timur
20.10.2018
18:45:13
только живые поды

Alexey
20.10.2018
18:46:02
вариант подождать креша 100% гарантированный ? А так время утекло, не думаю, что можно.

Timur
20.10.2018
18:46:48
А понял, спасибо, надо уведомление видимо ставить

Alexey
20.10.2018
18:47:51
на cron поставить describe в файл в крайнем случае, если редко и ночью. Самые простые варианты предлагаю, понятно, что можно мудрить много чего.

kubectl describe ... > describe$(date)

Timur
20.10.2018
18:51:48
Да там падение очень непредсказуемое. Спасибо ,главное что я понял что просто так не посмотреть)

Banschikov
20.10.2018
18:56:05
Да там падение очень непредсказуемое. Спасибо ,главное что я понял что просто так не посмотреть)
У меня подобные сервисы есть, но отлавливаем их ошибки по историям в логах. Задеплой себе в кластер fluent bit и потом смотри логи через kibana к примеру. Я так делаю)

Timur
20.10.2018
18:58:05
Да проблема в том что у меня Гугл Клауд и пишется огромное количество логов. Плюс инстана есть. И там абсолютно ничего

Timur
20.10.2018
19:00:43
Да я вижу что в этой дате произошло - там просто обрыв в логах kubelet тоже обычные чеки какие то. Ну ладно

Banschikov
20.10.2018
19:01:25
Да проблема в том что у меня Гугл Клауд и пишется огромное количество логов. Плюс инстана есть. И там абсолютно ничего
Я как делаю. Если разрабы говорят что там сервис упал при выгрузке больших данных, то я открываю графану и смотрю промежутки времени когда сервис вел себя аномально или вообще перестал отдавать метрики. Потом в этот временной промежуток чекаю логи и находим ошибку

Да я вижу что в этой дате произошло - там просто обрыв в логах kubelet тоже обычные чеки какие то. Ну ладно
Событий, почему твой сервис упал может быть куча. Тут только в помощь метрики и логи.

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