
Dmytro
01.08.2018
13:48:50

Alexey
01.08.2018
13:50:18
Dmytro я использую очень активно docker-compose в dev, но на prod все, что делал больше на костыли смахивало.

Konstantin
01.08.2018
13:59:00

Alexey
01.08.2018
13:59:24
я столько натерпелся от swarm... нет.

Google

Сергей
01.08.2018
13:59:49

Alexey
01.08.2018
14:00:25
рандомные падения, ноль логов, забиндить сервис на localhost нельзя было до недавнего времени

Konstantin
01.08.2018
14:00:55

Alexey
01.08.2018
14:01:10
version: '3.3'
api:
ports:
- mode: host
target: 3000
published: 3000

Сергей
01.08.2018
14:01:19

Alexey
01.08.2018
14:01:28
сварма
там их минимум. Что случилось - иди к гадалке
Я так радовался, когда увидел describe в k8n...

Сергей
01.08.2018
14:02:22

Dmytro
01.08.2018
14:02:24
да вроде не такой уж и костыль https://github.com/vincetse/docker-compose-zero-downtime-deployment
и своего рода HA :))
но в целом куб конечно тут лучше подходит, спору нет

Konstantin
01.08.2018
14:03:26

Google

Dmytro
01.08.2018
14:03:43
ну так по задаче и инструмент
если все равно на одной ноде то и almost zero down не должно пугать
ну пару секунд будет 502

Alexey
01.08.2018
14:04:21
там оно almost zeredowntime понимаете почему?
не будет там 502, в этом решении
там задержка будет, пока прокси поймет, что упала часть приложения

twwlf
01.08.2018
14:04:52

Konstantin
01.08.2018
14:04:55
по задаче есть swarm, пох на сколько нод, но не умеет он всякие политики, авторизации и прочее. поэтому на одном сворме не прожить)

twwlf
01.08.2018
14:05:05
для таких вещей надо более другой прокси использовать как бы

Alexey
01.08.2018
14:05:12

twwlf
01.08.2018
14:05:31
nginx без плюса свои бекенды хелсчекать не умеет никак

Alexey
01.08.2018
14:05:31
ему нужно постучатся, подождать n сек и идти в другое место

twwlf
01.08.2018
14:05:36
там обёрнуто в костыль

Andor
01.08.2018
14:05:41

Konstantin
01.08.2018
14:05:46

twwlf
01.08.2018
14:05:48
Умеет
на старте не считается

Alexey
01.08.2018
14:05:57
хелчек же не каждую секунду то. Раз в минуту... тут все равно будет задержка

twwlf
01.08.2018
14:05:58
в рантайме - не умеет
ну, или не умел

Andor
01.08.2018
14:06:04
всё равно умеет

Google

Andor
01.08.2018
14:06:09
Есть модуль

twwlf
01.08.2018
14:06:09
ну, конечно

Alexey
01.08.2018
14:06:16
k8n тушит по etcd событию

Andor
01.08.2018
14:06:21
И судя по синаксису его и сунуьи в плюс

twwlf
01.08.2018
14:06:29
а есть traefik который смотрит докеру в сокет и сам понимает когда чего переключать надо

Andor
01.08.2018
14:06:51
Это не отменяет что нжинкс это умеет

Dmytro
01.08.2018
14:07:14
в-общем, имхо тут товарищам нужны шашечки - на одной ноде все хочу, куб не хочу т.к. много памяти но нужен zero downtime

Alexey
01.08.2018
14:07:26
etcd + confd сделает zerodown time
только это ж писать нужно)

twwlf
01.08.2018
14:07:43

Alexey
01.08.2018
14:07:45
хотя не, перебор. проще руками генерить конфиг

twwlf
01.08.2018
14:07:56
а то вот эти "есть модуль, просто скомпилируй"

Andor
01.08.2018
14:08:09
Берёшь опенрести и ничо не надо компилить

Alexey
01.08.2018
14:08:56
хочу ещё ingress к zerodown time ? Короче проще k8n заводить.

twwlf
01.08.2018
14:09:20
ну, да, да

Andor
01.08.2018
14:09:52
То ли дело поделка на го :)

Alexey
01.08.2018
14:09:55
tarantool как базу с триггерами на lua + openrestry
только потом фиг найдешь того, кто захочет это поддерживать(

twwlf
01.08.2018
14:10:46

Google

Andor
01.08.2018
14:10:52
Проверь

twwlf
01.08.2018
14:10:56
мне лень

Alexey
01.08.2018
14:11:05
там же 100% есть timeout на это. Уменьшить и все.

twwlf
01.08.2018
14:11:06
но там механически на docker event должно триггериться

Alexey
01.08.2018
14:11:11
может у traefik он меньше
по-умолчанию

twwlf
01.08.2018
14:11:19
в отличие от любой проверки на уровне tcp/http

Alexey
01.08.2018
14:12:05
k8n - наркотик с сильной зависимостью

heX
01.08.2018
14:15:15
Кто postgres кластер запускал на кубах?

Сергей
01.08.2018
14:15:20

Alexey
01.08.2018
14:16:05
k8s
раскладка дворака... sn рядом...

Konstantin
01.08.2018
14:17:02

twwlf
01.08.2018
14:31:14
в простейшем случае с одним dockerd – можно через апи поймать ивент на стоп/старт и среагировать

Andor
01.08.2018
14:34:37
Запуск контейнера != запуск приложения

twwlf
01.08.2018
14:44:53
ну, разумеется, но если вы после SIGTERM позволяете себе принимать запросы – то ой

ptchol
01.08.2018
15:24:03
не работает просто include kubespray если делать по их ману, c ошибкой:
The error appears to have been in 'ansible/3d/kubespray/cluster.yml': line 2, column 3, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
---
- hosts: localhost
^ here
и не понимаю как подцепить таки

Konstantin
01.08.2018
15:24:21

Alexander
01.08.2018
16:30:50

Google

Alex Milushev
01.08.2018
16:35:02
еще странного хочу, нужно 22 порт пода в мир выставить, это вообще возможно?

Deep Sea
01.08.2018
16:40:07
Можно через nodeport, но если надо порт < 1000, то придётся запускать с с привиледжед режимом

Alex Milushev
01.08.2018
16:42:06

Deep Sea
01.08.2018
16:43:01
Лучше через ингресс имхо

Alex Milushev
01.08.2018
16:46:04

Deep Sea
01.08.2018
16:49:12
https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/exposing-tcp-udp-services.md

Andor
01.08.2018
17:37:23

Alex Milushev
01.08.2018
18:12:42

Deep Sea
01.08.2018
18:13:40

Alex Milushev
01.08.2018
18:14:14
ну да, но хотелось бы кроссклауд, не видно не судьба

Deep Sea
01.08.2018
18:14:49
ну loadbalancer в кубернетесе вполне себе кроссклауд ИМХО

Anton
01.08.2018
18:33:37
гайс, а делал кто такое: кронджобой создать контейнер в поде(StatefulSet) и из него в PV этого StatefulSet сделать всякие штуки?


Sergey
01.08.2018
18:39:07
рандомные падения, ноль логов, забиндить сервис на localhost нельзя было до недавнего времени
Забавно, а я думал только мне так повезло, столько глюков swarm'а отведать. Были и split brain'ы (создавалась еще одна реплика rabbitmq и с части серверов на неё шли мессаги, которые никто не разбирал). Повисшие контейнеры старых версий приложения были, которые удалились только после полного пересоздания кластера. Ну а касательно логов сервисов - docker service logs вообще частенько висел, приходилось смотреть логи каждого контейнера на конкретной ноде. Оверлейная сеть глючила - иногда хосты в одной оверлейной сети не видели друг друга, приходилось удалять и создавать стек - и через несколько попыток оно наконец заводилось. Но периодически все равно падали ошибки "no route to host". Сам кластер тоже регулярно терял кворум (но это было давно, на старых версиях докера), когда было 3 мастера - а с 1 мастером смысла от такой оркестрации как-то маловато. В итоге это все закончилось вынесением всех stateful сервисов в private network, а в swarm'е только воркеры всякие остались, к которым никто не подключается.


Alexey
01.08.2018
18:57:57
git сервер на k8s
nginx умеет прокси tcp, т.е. можно через ингресс. А вообще все делают через 1022 порт или типа того. И отлично.

Dmytro
01.08.2018
19:17:00

Andor
01.08.2018
19:21:06
Омг

Dmytro
01.08.2018
19:27:17
да ладно, зато наружу не торчит подозрительный 22 порт и все говно гитлаба засунуто в один контейнер

Alexey
01.08.2018
19:28:25
apiVersion: v1
kind: ConfigMap
metadata:
name: tcp-configmap-example
data:
9000: "default/example-go:8080"
ingress умеет...
cat ingress-values.yaml
name: nginx-ingress
namespace: kube-system
rbac:
create: true
tcp:
1022: "gitlab/gitlab:22"
controller:
kind: DaemonSet
daemonset:
useHostPort: true
если ingress через helm