
terry
19.01.2018
14:26:30
вы вообще читали, что я писал

Dmitry
19.01.2018
14:26:42
чем проще ты сделаешь тем лучше. одного дц тебе современного даже тиер 2-3 достаточно будет.

terry
19.01.2018
14:26:42
разные сервисы на разные континенты
и страны

Google

bebebe
19.01.2018
14:27:04
галактики

terry
19.01.2018
14:27:05
cdn само собой
это логично

Fike
19.01.2018
14:27:08
тогда непонятно, зачем их соединять в один кластер, если это принципиально разные сервисы

Dmitry
19.01.2018
14:27:19
воспользуйся для быстрой доставки CDN

terry
19.01.2018
14:27:46
3дц это уход от идиотизма датацентра
облако тоже не панацея

Fike
19.01.2018
14:28:28
так, давайте на два шага назад
в этих трех дц один и тот же контент, или разный?

terry
19.01.2018
14:29:18
там не контент, а сервис который будет генерировать данные для юзеров
при этом реалтайм
cdn для сео не всегда ок

Google

Fike
19.01.2018
14:30:20
вопрос не про реалтайм, это одна сущность, которая синхронно у тебя должна работать в трех локациях, или все-таки разные сущности, которые между собой никак не связаны?

terry
19.01.2018
14:31:16

Sergey
19.01.2018
14:31:38
база на чем?

terry
19.01.2018
14:31:42
mongo
пока что она, в дальнейшем - может поменятся

Sergey
19.01.2018
14:33:57
монго плохой выбор для таких задачь. О риалтайме можно забыть.

terry
19.01.2018
14:34:45

Sergey
19.01.2018
14:35:38
но если иметь 2 статлес приложения, то зачем заморачиваться о одном сингл кластере. Несколько отдельных кластеров обеспечат гораздо большую надежность. Но уровень базы в любом случае нужно будет не на кубе делать

terry
19.01.2018
14:37:10

Sergey
19.01.2018
14:37:43
твое предложение?
при таких вводных, кубер кластер в одном реджине с распределением нод по AZ. (Aws\GKE)
Базу если не менять - то можно mongomms cloud,
если менять то взять что-то из того что предлагает клауд.
Если своими силами - то все очень сильно зависит от логики приложения. Таже кассандра не везде пойдет.
делать мультиреджин кластера надо если ты работаешь на глобальный рынок и важна латенси.

terry
19.01.2018
14:38:28
и я о том же

Sergey
19.01.2018
14:39:52
ну вот и делай несколько отдельных кластеров. Да хоть мультиклауд.
Это вообще всё фигня, кроме вопроса синхронизации данных между реджинами.
приложение пишет или читает из базы?

terry
19.01.2018
14:43:10
читать может конечно меньше, но писать будет 100%, каждый час и по многу
правда все зависит от аппетита юзера к данным

Виталий
19.01.2018
14:45:25
Всем привет! Кто настраивал мультимастер Kubernetes кластер скажите, правильно ли я понял логику всей схемы.
Чтобы поднять мультимастер Kubernetes нужно настроить одну мастер ноду, далее скопировать с нее сертификаты на остальные 2 ноды. Далее, по стандартной схеме, настроить остальные два мастера на оставшихся двух нодах (при этом ключи на них генериться уже не будут, т.к. они есть) и в конце настроить реплику между всеми etcd который пуступает как БД для мастеров.
В логическом завершении нужно на четвертой машине настроить баллансировщик (единую точку входа для всех 3-х мастер нод). Все правильно?

Google

Sergey
19.01.2018
14:48:02
Если много писать и важна латенси для мультиреджин, то похоже что стоит посмотреть на кассандру. Возможно, в комбинации с каким-то кешами. (может быть Ignite)
Но здесь все сильно зависит от приложения и бизнес кейса. Не воспринимайте эти технологии как готовый рецепт.
Опять же, если данные не нужно синхронизировать между реджинами, то и монга может подойти.

Виталий
19.01.2018
14:53:48
Представлюсь.
Я php backend разработчик. Хочу уметь создавать приложения работающие в облаке и легко масштаблируемые. Для этого я изучил Docker и сейчас учу оркестрацию. Выбрал Kubernetes в качестве откестратора.
В планах хочу построить protuction HA кластер из 3 мастер нод и N миньйонов, а так же настроить CI\CD приложение через Gitlab CI. Наметил себе путь, а теперь активно курю доки и вкладываю в свою голову знания и понятия.
Я из Украины, г Одесса. Про группу узнал из списка каналог на гитхабе и гугла.
#whois

Mikhail
19.01.2018
14:55:42


Виталий
19.01.2018
14:57:10
так а где настраивается keepalived ? и какая логика с ним получается?

Mikhail
19.01.2018
14:58:51

Dmitry
19.01.2018
14:59:22
@voskobovich есть ещё мнение что в случае мультимастера мастеров должно быть нечётное кол-во из-за (рас)синхронизации состояния. поправьте если я не прав.

Mikhail
19.01.2018
14:59:27
еще надо не забыть про флаги leader-elect в контрол плейне

Виталий
19.01.2018
14:59:32

Mikhail
19.01.2018
15:01:02

Fike
19.01.2018
15:01:17

Mikhail
19.01.2018
15:01:22

Виталий
19.01.2018
15:03:14

Fike
19.01.2018
15:03:55


Виталий
19.01.2018
15:06:06
В случае любого разделения сети формируется новый кластер из оставшихся узлов. Один из вариантов разделения сети - это просто потеря связи между двумя участками кластера, и в таком случае возникает проблема двойного авторитета. Из-за этого та часть, в которой меньшинство, должна потухнуть до воссоединения, а большинство - продолжить работу. Если мы берем нечетное количество нод, скажем пять - большинством является три ноды.
Если мы возьмем шесть, то большинством будет четыре ноды - и получается, что вот эта шестая нода не дает нам никакого преимущества, потому что больше двух нод мы потерять все равно не можем.
ох, спасибо. В теории понятно. Но каким образом меньшинство тухнет?
Например есть 5 нод, одна из них потухла. Что произойдет в системе и кто это контролирует?


Fike
19.01.2018
15:06:46
Останется четыре, они видят друг друга и продолжают работу. Если эта нода не умерла, а оказалась отрезанной от сети, то она увидит, что товарок больше нет и откажется выполнять запросы.

Mikhail
19.01.2018
15:07:17

Google

Fike
19.01.2018
15:07:39
Конкретно в etcd внутри сидит протокол raft, который просто не считает операцию совершенной, пока ее не приняло большинство участников кластера, поэтому там это вообще сразу из коробки (правда с чтениями они один раз все же профакапились, но это пофиксили).

Виталий
19.01.2018
15:09:02

Andor
19.01.2018
15:12:33

Виталий
19.01.2018
15:13:05

Andor
19.01.2018
15:13:20
он дублируется

Fike
19.01.2018
15:13:26

Andor
19.01.2018
15:14:06
call me maybe

Admin
ERROR: S client not available

Виталий
19.01.2018
15:14:16

Andor
19.01.2018
15:14:26
один из лучших циклов на эту тему

Mikhail
19.01.2018
15:18:38

Fike
19.01.2018
15:19:00
aphyr.com/tags/jepsen

Виталий
19.01.2018
15:19:16
Так, получается что я все понял правильно кроме того, что баллансировку между нодами делает keepalived. Etcd можно как сразу в кластер соединять, а можно и потом прикрутить реплики.

Mikhail
19.01.2018
15:19:27
502 Bad Gateway ?

Fike
19.01.2018
15:19:29
jepsen.io

Andor
19.01.2018
15:20:14

Dmitry
19.01.2018
15:20:17
https://webcache.googleusercontent.com/search?q=cache:qKqUKdvRHesJ:https://aphyr.com/tags/jepsen+&cd=14&hl=en&ct=clnk&gl=ru&lr=lang_en%7Clang_ru

Виталий
19.01.2018
15:20:55

Andor
19.01.2018
15:24:56
конечно

Google

Andor
19.01.2018
15:25:04
ну это так себе практика, но работать будет
если конечно этот самый 1 мастер не сдохнет по пути :)

Виталий
19.01.2018
15:29:58
ну для прода надо сразу поднимать 3 мастера))

Andor
19.01.2018
15:33:49
не мастера, а инстанса етцд

Виталий
19.01.2018
15:33:51
Ух, нашел про keepalived https://habrahabr.ru/company/netangels/blog/326400/ почитал. Сума сойти какая схема)) но круто что нет точки отказа. Спасибо!

Линник
19.01.2018
15:34:20
Вопрос:
kubectl create -f https://k8s.io/docs/tasks/debug-application-cluster/counter-pod.yaml
kubectl logs counter
Консоль висит и логов нет, подскажите куда смотреть, что не так может быть?

Виталий
19.01.2018
15:34:41
я так понимаю, что keepalived и установка виртуального ИП делается на мастер нодах, верно?

Fike
19.01.2018
15:39:03

Dmitry
19.01.2018
15:40:32
как вариант, вместо keepalived можно на каждом воркере запустить локальный прокси (nginx/haproxy) который будет раскидывать все запросы к апи серверу(ам) (идущие на 127.0.0.1 на воркере)

Mikhail
19.01.2018
15:41:13

Виталий
19.01.2018
15:42:08


Линник
19.01.2018
15:45:43
Что в дескрайбе пода?
# kubectl describe pod counter
Name: counter
Namespace: default
Node: domain/172.27.39.28
Start Time: Fri, 19 Jan 2018 18:32:39 +0300
Labels: <none>
Annotations: <none>
Status: Running
IP: 10.244.0.13
Containers:
count:
Container ID: docker://7049fcc5911a6c7a5dbe182bc69351e16dbb1d9727f502e6c41dc61d05cfe0fb
Image: busybox
Image ID: docker-pullable://busybox@sha256:ac2fc418f3348815e68e266a5aa1b60bc522581c96964912560a0baacc4f5c06
Port: <none>
Args:
/bin/sh
-c
i=0; while true; do echo "$i: $(date)"; i=$((i+1)); sleep 1; done
State: Running
Started: Fri, 19 Jan 2018 18:32:57 +0300
Ready: True
Restart Count: 0
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-4pqlv (ro)
Conditions:
Type Status
Initialized True
Ready True
PodScheduled True
Volumes:
default-token-4pqlv:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-4pqlv
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.alpha.kubernetes.io/notReady:NoExecute for 300s
node.alpha.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 11m default-scheduler Successfully assigned counter to domain
Normal SuccessfulMountVolume 11m kubelet, domain MountVolume.SetUp succeeded for volume "default-token-4pqlv"
Normal Pulling 10m kubelet, domain pulling image "busybox"
Normal Pulled 10m kubelet, domain Successfully pulled image "busybox"
Normal Created 10m kubelet, domain Created container
Normal Started 10m kubelet, domain Started container


Dmitry
19.01.2018
15:46:43
ссылочку не знаю, схема такая:
есть воркер, на нём стоит nginx, слушает на каком то порту на 127.0.0.1, и проксирует все запросы на бэкенды в качестве которых API сервера. компоненты куба-воркера (кубелет и кубе-прокси) ходят в 127.0.0.1 вместо адресов API серверов

Виталий
19.01.2018
15:51:08

Fike
19.01.2018
15:51:28


Линник
19.01.2018
15:51:44

Dmitry
19.01.2018
15:54:14

Линник
19.01.2018
15:58:17
да, все из коробки
Нашел файлик с логами:
tail /var/log/pods/fb9ebd51-fd2d-11e7-9877-fa163e595e88/count_0.log
Он пишется, не понятно только почему команда не показывает их

Vik
19.01.2018
16:16:59
ребят, а кто-то делать что-то Kubernetes + Kerberos?

Pavel
19.01.2018
16:43:40