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

bebebe
20.10.2018
16:56:17

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

Никита
20.10.2018
16:56:53
Теперь, хорошие новости в том, что при использовании сетевых плагинов, основанных на маршрутизации, типа calico, kube-router, в сеть подов и сеть сервисов можно попасть, если знать к ним маршруты. Собственно, внутри кластера они по дефолту будут (их распространит сетевой плагин), а вот внешним хостам их можно как-нибудь сообщить, например, через BGP (что эти сетевые плагины тоже умеют). Можно хоть статические маршруты прописать, однако это не очень хороший путь, так как при изменении состава кластера их придётся обновлять вручную.
Соответственно, если сеть подов доступна, поды можно публиковать как headless сервис и получать все недостатки балансировки через DNS, но и все профиты от отсутствия ната где бы то ни было.

Google

Grisha
20.10.2018
16:59:00

Vlad
20.10.2018
17:00:10

Никита
20.10.2018
17:01:45

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

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

Grisha
20.10.2018
17:06:37

bebebe
20.10.2018
17:08:10

Grisha
20.10.2018
17:08:24

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

Никита
20.10.2018
17:11:32

Google

Grisha
20.10.2018
17:11:57
в плане выбора драйвера

Никита
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, по-моему... Возможности пересекаются.

kvaps
20.10.2018
17:34:02

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

Sergey
20.10.2018
17:35:54

Google

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

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

kvaps
20.10.2018
17:39:28

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

kvaps
20.10.2018
17:45:33

Vadim
20.10.2018
17:46:53

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
Рил уже хочу этот Helm выкинуть куда подальше)

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

Banschikov
20.10.2018
18:12:57

Alexey
20.10.2018
18:13:49

Banschikov
20.10.2018
18:14:19

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

Banschikov
20.10.2018
18:24:23

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

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

Alexey
20.10.2018
18:42:28


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

Alexey
20.10.2018
18:43:28

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)

Banschikov
20.10.2018
18:50:19

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

Banschikov
20.10.2018
18:56:05

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

Banschikov
20.10.2018
18:58:48

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

Banschikov
20.10.2018
19:01:25