
Max
20.01.2018
19:26:37
Мб кому пригодится detailed tutorial on how to deploy an HA Kubernetes Cluster inside an VPC on AWS.....
https://www.youtube.com/watch?v=saXjuWG4PeU

Dmitry
20.01.2018
19:26:39
есть 3 реплики, и каждая должна знать список

Сергей
20.01.2018
19:27:01
Реплика чего и какой список?

Dmitry
20.01.2018
19:27:15
вот этого ,наприме рhttps://hub.docker.com/r/erlio/docker-vernemq/ там один из вариантов клатеризации - discovery node., т.е. нужно передать адресок первой ноды.

Google

Сергей
20.01.2018
19:27:55
Он только айпи принимает?
Имена не может?

Dmitry
20.01.2018
19:28:26

Сергей
20.01.2018
19:28:57
Для этого есть тип сервиса хендлес

Dmitry
20.01.2018
19:30:04

Сергей
20.01.2018
19:31:06
Sometimes you don’t need or want load-balancing and a single service IP. In this case, you can create “headless” services by specifying "None" for the cluster IP (spec.clusterIP).
Это тип сервиса

Dmitry
20.01.2018
19:31:22
ок
хендлес != headleass ?

Сергей
20.01.2018
19:31:53
Три пода, на каждый свой сервис с типом None

Dmitry
20.01.2018
19:32:50
Как мне это поможет? Как они найдут друг друга? единственный clusterIP будет типа дискавери?
а между собой у них что, нат?

Google

Denis
20.01.2018
19:33:35

Сергей
20.01.2018
19:34:38
Пример можно найти по зукипер и стейтфул сервису
Там как раз этот тип сервиса используется
Whaaat? )
Это я убогий не стоит обращать внимания

Dmitry
20.01.2018
19:37:46
Да. Спасибо. Нашёл ещё по монге похожее

Сергей
20.01.2018
19:39:50
Я так понимаю для тебя стейтфулсет тоже подойдкт, ты получишь в итоге предсказуемые имена у подов

Dmitry
20.01.2018
19:40:39
Да. Зукиперовская модель вполне. Теперь опять вопрос стораджа
Я так и не дошёл

Сергей
20.01.2018
19:41:01
И надо будет взять тот имидж докеровский и немного переделать
Да возьми локалпатч и забей
Это если не Клауд

Dmitry
20.01.2018
19:42:04
Можно просто вольюм дать Куберу создать?

Сергей
20.01.2018
19:42:39
У кубера свой движок для работы с волумами

Dmitry
20.01.2018
19:42:39
Я пока этого не понимаю до конца.
Да, я помню.
Можно его попросить создать вольюм на время жизни пода?
Удалён под- умерли данные
я сравниваю с подходом docker compose

Сергей
20.01.2018
19:47:41
Надо доку изучить

Google

Сергей
20.01.2018
19:47:45
Там нюансы

Dmitry
20.01.2018
19:49:08
Ну хорошо, начнем с обратного. Чарт Зукипера хочет PersistentVolume support
https://github.com/kubernetes/charts/tree/master/incubator/zookeeper
Это для меня что значит? Нужно как минимум вручную будет создавать вольюмы, да?
вот, например, тип local

Сергей
20.01.2018
19:50:51
Можно темплейт юзать

Dmitry
20.01.2018
19:50:54
или hostPath
я более глобально не могу понять подход к локальным вольюмам.

Сергей
20.01.2018
19:52:17
Письку Дашь ебать?

Dmitry
20.01.2018
19:52:47
@p8sih вот emptyDir мне подойдет?

Сергей
20.01.2018
19:53:06

Dmitry
20.01.2018
19:53:18

Dmitry
20.01.2018
19:54:01
вот зукипер делает volumeClaimTemplates
как мне подсунуть emptyDir?

Сергей
20.01.2018
19:56:41
Брать Гугл и тестить я тебе не подскажу тут

Dmitry
20.01.2018
19:59:21
буду тогд смотреть на emptyDir
Ну судя по всему это то что надо в моем случае
https://kubernetes.io/docs/tasks/configure-pod-container/configure-volume-storage/

Anton
20.01.2018
20:01:36
и еще спеку рафта
Etcd примет за основу данные большей части после воссоединения, то есть отбросив Стейт меньшей части, и как это отразиься на k8s все таки вопрос

Сергей
20.01.2018
20:03:51

Google

Fike
20.01.2018
20:07:00
не будет никакой меньшей части

Sergey
20.01.2018
20:07:29
кластер в меньшей части не соберется
поэтому не будет оттуда никаких записей

Anton
20.01.2018
20:08:57

Admin
ERROR: S client not available

Fike
20.01.2018
20:09:10
в кластере один (1) мастер
он не может избраться в меньшей части кластера
он не может ничего закоммитить, потому что для коммита нужен кворум

Сергей
20.01.2018
20:10:52

Fike
20.01.2018
20:10:55
там есть только окно возможностей, когда уже-не-очень-мастер примет запрос, пихнет в лог, но даже не ответит успехом клиенту, потому что кворум не отзовется, но система в целом все равно будет в консистентном состоянии и не сможет вернуть эти данные вне зависимости от того, какой узел опрашивается

Sergey
20.01.2018
20:11:00

Сергей
20.01.2018
20:11:34

Anton
20.01.2018
20:11:58
Ну при соблюдении нечетного количества мастеров
N/2 +1
Хорошо
Значит при отсутствии багов все будет ок

Fike
20.01.2018
20:13:11

Сергей
20.01.2018
20:14:20
А как будет поведение, если кластер из 5 нод распался на три, при чем зитпо, по две ноды друг друга не видеть, в одна видит все оставшиеся 4

Anton
20.01.2018
20:14:32
At least 51% of the cluster must be online — the actual formula is N/2 + 1 — in order for any data to be read or written, to prevent split brain problems

Google

Fike
20.01.2018
20:14:56
и здесь нет никакого запрета на четное число нод
это нерационально, но не запрещено

Сергей
20.01.2018
20:17:27

Fike
20.01.2018
20:18:22

Anton
20.01.2018
20:18:24
Не обин не заработает)

Fike
20.01.2018
20:18:37

Сергей
20.01.2018
20:19:33
Просто тут загвоздка что 4 ноды в попарно не видят друг друга, но все они видят пятую ноду
Идеальный вариант, если эта года была мастером
А если нет, никто в рафте не даёт гарантии что она станет мастером при выборе

Fike
20.01.2018
20:20:46
Если память не изменяет, то каждая нода сможет стать мастером. Центральная при этом будет служить фейлсейфом от того, чтобы обе ветви этой кардиоиды избрались
Другими словами после разветвления она сможет отдать голос только кому-то одному (включая себя - опять же, если память не изменяет), и кто-то останется без промоутинга

Сергей
20.01.2018
20:22:20
Ну вот я как раз о том, станет ли пятая координатором

Sergey
20.01.2018
20:22:27

Сергей
20.01.2018
20:22:48

Fike
20.01.2018
20:23:06
время раскопать спеку

Sergey
20.01.2018
20:23:08
это ожидаемое поведение.
ни одна другая не сможет стать мастером, потому что не получит подтверждений об этом.
возможно в реализации можно предусмотреть, чтобы ноды имели полную связность на этапе выборов, но в целом для рафта это не обязательно