
Alexey
10.09.2018
11:11:59
репа поменялась, а docker build ничего не сделал, deployment не нужно перерезапускать
readme.md поменялось, оно в dockerignore
сервис не поменялся, но тег меняется, потому что новый комит, а deployment смотрит на image, сменился, перезапускаю.
Это МИНИ проблема, просто разговор зашел про это.

Google

Andor
10.09.2018
11:13:41
да это проблема того же типа что и "запускать тесты только если код поменялся, а не readme"
она не про докер и не про кубер

Alexey
10.09.2018
11:14:22
Ну docker может на 100% сказать, что что-то поменялось, мне для этого не нужно ничего делать. Это отличие от тестов.
Для тестов ещё нужно пойти напрячься, чтобы граф зависимостей собрать.

Andor
10.09.2018
11:14:36
не может
докер оперирует уже артефактами сборки, а не исходными данными

Alexey
10.09.2018
11:15:19
если поменять файл, который в dockerignore, то он будет поновой все собирать? Не будет.
если поменять файлы, которые не попадают в image вообще, он будет пересобирать? Не будет, все из кэша
если у меня
src
docs
и docs не попадает в image, просто не хотелось бы перезапускать deployment из-за комита в docs, который поменял тег.
это скорее всего 1 if, не более.

Andor
10.09.2018
11:18:12
ну не собирай образ просто
то есть в твоём случае не тегай

Andrey
10.09.2018
11:21:03

Google

Alexey
10.09.2018
11:21:03
docker build -t service:$SHA_COMMIT_SHA .
выполняется всегда, после этого можно сказать, что image поменялся или нет.
Да не хочу я делать работу, которуюделает docker build. Уже все готово же.

Andor
10.09.2018
11:21:29
ну сделай чтобы не выполнялось

Alexey
10.09.2018
11:22:01
ну так после docker build нужно смотреть,что текущий image не отличается от работающего и скипать, я про это говорю 20 минут уже)

Andor
10.09.2018
11:22:45
при чём тут образ вообще?

Andrey
10.09.2018
11:23:07

Alexey
10.09.2018
11:23:37
docker build не собирает ничего, если не было правок. Следовательно не нужно перезапускать deployment. Я только про это.
docker build бесплатный если не было правок, даже если другой тег.
kubectl apply напряжный, если поменялся тег и 50 реплик

Andor
10.09.2018
11:24:11
ну раздели build и tag
и делай tag по условию

Alexey
10.09.2018
11:24:42
да нет, мне просто нужно делать if что текущий рабочий image отличается от собранного только тегом. Внутри все одинаковое.
Ладно, сделаю - расскажу.
Работа прилетела

Andor
10.09.2018
11:25:28
ну есть некий docker diff

Alexey
10.09.2018
11:25:57
да, и какой-то sha256 у image... что-то в этой стороне. Курить доки нужно. Должно быть просто.

Andor
10.09.2018
11:26:43
не, дифф это не то

bebebe
10.09.2018
11:26:55
@docker_ru какой-то

Andor
10.09.2018
11:27:21
https://github.com/GoogleContainerTools/container-diff вот это наверное

Vadim
10.09.2018
11:28:02
можно и просто сравнив json'ы манифестов для этих тегов

Google

Andor
10.09.2018
11:28:22
тоже верно

Andrey
10.09.2018
11:28:42
https://docs.docker.com/engine/reference/commandline/pull/#pull-an-image-by-digest-immutable-identifier

bebebe
10.09.2018
11:35:27
+ в догонку https://docs.docker.com/config/labels-custom-metadata/

Andrey
10.09.2018
12:28:24
Ребят, кто настраивал bgp между calico и другими маршрутизаторами?
Есть какой-то туториал?
Заведётся оно с quagga?

Andor
10.09.2018
12:28:59
заведётся
ну если в квагге бгп включить конечно
а почему квагга? или это не твой выбор?
в калико внутри обычный bird и обычный bgp

Andrey
10.09.2018
12:40:31

Никита
10.09.2018
12:42:58
Главное - лишнего не заанонсить кластеру.

Andrey
10.09.2018
12:43:29
Чтоб поды были доступны в локалке. Чтобы их мониторить прометеем без федерации

Никита
10.09.2018
12:44:09
Мне вот bird понравился, квагга как-то неочевидно. А бёрд прям хорош и прост, и фильтры всякие развесистые умеет.

Mikhail
10.09.2018
12:46:45
плюсую bird

Никита
10.09.2018
12:48:47
У меня даже пример конфига найдётся, если нужно.
Ну и в контейнере с calico можно посмотреть.
Кстати, калико сеть сервисов не умеет анонсить, это пока только kube-router может.

Andor
10.09.2018
12:56:23
Для этого ipvs есть
Не то же самое конечно, но вполне рабочий варант

Никита
10.09.2018
12:57:10

Google

Никита
10.09.2018
12:57:29
А я про анонс на роутер самого факта наличия сети сервисов.
Ну или отдельных clusterip.

Andor
10.09.2018
12:58:13
Я про то что kube-proxy вполне успешно без kube-router распространяет информацию про сервис адреса

Никита
10.09.2018
12:59:10
Да, между нодами кластера, а во внешние сети?

Andor
10.09.2018
13:04:08
Зачем анонсить сервисные адреса наружу?

Mikhail
10.09.2018
13:09:59
а тут по-моему про адреса подов

Andrey
10.09.2018
13:14:12
Ну мне надо именно адреса подов. У меня поды умеют в /metrics для прометея.
Было несколько вариантов, типо федерации, проксятника и BGP. Вроде коллективным разумом чатов телеграма пришел к выводу что BGP самый оптимальный вариант

Andor
10.09.2018
13:16:22
А кто тебе мешает прометея просто сунуть внутрь кластера?

Andrey
10.09.2018
13:17:43

Andor
10.09.2018
13:18:20
@azalio это не у тебя так?

Mikhail
10.09.2018
13:22:34
ну у меня так да
прометей стоит сбоку
адреса подов доступны по всей сети

Gleb
10.09.2018
13:24:02
а начем сеть?

Andor
10.09.2018
13:24:40
Проще всего на каждый кубокластер держать по своему прометею имхо

Mikhail
10.09.2018
13:27:34

Andrey
10.09.2018
13:27:43
А почему не хочется-то?
ну для него сторедж надо делать и всякую такую обвязку. А сейчас все просто и примитивно. В кубере только stateless. Случилось се с серваком, выкинул, поставил новый, работаем дальше)

Mikhail
10.09.2018
13:28:06

Andrey
10.09.2018
13:44:40

Google

Mikhail
10.09.2018
13:51:32

Никита
10.09.2018
14:28:51
Зачем анонсить сервисные адреса наружу?
Ну вот есть большая сеть предприятия. И есть в ней кластер кубернетеса с двумя сетями маленькими - сетью подов и сетью сервисов. Первую мы анонсим роутерам в нашей большой сети, и вся сеть может ходить на айпишники подов. То же самое и с сетью сервисов, анонсим сеть сервисов, и вся сеть может ходить на айпишники сервисов.

Andor
10.09.2018
14:29:33
что от этого анонса будет - я понимаю
вопрос был "зачем"

Никита
10.09.2018
14:30:54
Чтобы из сети предприятия были маршруты до сети сервисов. А почему это вопросы вызывает?
Ну, то есть, с моей стороны выглядит как вполне логичное решение.

Andor
10.09.2018
14:31:37
логичнее того же ингресса?

Никита
10.09.2018
14:34:06
Ну а почему нет?
Да и задачи разные бывают.

Andor
10.09.2018
14:34:38
смотря как это делать
ну понятно что в каких-то кейсах это норм будет
но лично мне кажется, что обычнл более логичным выглядит выставлять наружу адреса балансеров, которые уже умеют в кубер, а не голые адреса подов/сервисов
например того же ингресса

Mikhail
10.09.2018
15:41:56
А как получить программным путем подсеть выделеную для ноды? (без kubectl)

twwlf
10.09.2018
15:43:34
взять netmask c интерфейса?

Mikhail
10.09.2018
15:47:20
у меня нет

Никита
10.09.2018
17:22:38

Mikhail
10.09.2018
17:23:06

Никита
10.09.2018
17:23:27
Ну, можно в calicoctl node чётотам посмотреть.

Mikhail
10.09.2018
17:24:25
run Run the Calico node container image.
status View the current status of a Calico node.
diags Gather a diagnostics bundle for a Calico node.
checksystem Verify the compute host is able to run a Calico node instance.
# calicoctl node status
Calico process is running.
IPv4 BGP status
+--------------+-----------+-------+----------+----------------------------+
| PEER ADDRESS | PEER TYPE | STATE | SINCE | INFO |
+--------------+-----------+-------+----------+----------------------------+
| 10.8.43.2 | global | down | 14:21:06 | Error: No listening socket |
| 10.8.43.3 | global | down | 14:21:06 | Error: No listening socket |
| 10.8.43.4 | global | down | 14:21:06 | Error: No listening socket |
| 10.8.43.5 | global | down | 14:21:06 | Error: No listening socket |
+--------------+-----------+-------+----------+----------------------------+