
Maksim
28.07.2017
11:23:05

kvaps
28.07.2017
11:23:08
3. ВОт этого не понял
ingress - это как в docker swarm, правильно?
экспозишь порт, и он доступен на любой ноде?

Maksim
28.07.2017
11:23:27
ммм. с Роем дело не имел) Но кажесь не так.
Ingress это правило для ingress-controller (которым в данный момент выступает либо GCE либо nginx-proxy)

Google

Maksim
28.07.2017
11:24:14
вроде как пилят HAproxy

kvaps
28.07.2017
11:24:44
а, точно, я что-то такое читал :)
Да. ТАм пишется DNAT правило по порту.
хм, а вот это интересно уже, спасибо.
Теперь вопрос в следующем, как можно вешать IP на ноду и "переезжать" его на другую, это вообще возможно сделать средствами kubernetes?
что-то типа https://github.com/kubernetes/contrib/tree/master/keepalived-vip только проще

Maksim
28.07.2017
11:27:54
Вот пример NodePort
KUBE-MARK-MASQ tcp — 0.0.0.0/0 0.0.0.0/0 /* kube-system/grafana: */ tcp dpt:30300
KUBE-SVC-3QDDWNGGGXWDZXKH tcp — 0.0.0.0/0 0.0.0.0/0 /* kube-system/grafana: */ tcp dpt:30300

kvaps
28.07.2017
11:28:08
грубо говоря, я бы хотел просто создать такой сервис как ip-адрес (много сервисов) и если одна нода падает, kubernetes перезапустил бы его на другой ноде

Maksim
28.07.2017
11:28:34
[root@222720-2 ~]# iptables -t nat -L KUBE-SVC-3QDDWNGGGXWDZXKH -n
Chain KUBE-SVC-3QDDWNGGGXWDZXKH (2 references)
target prot opt source destination
KUBE-SEP-BXYSBSOKGBRCZUIW all — 0.0.0.0/0 0.0.0.0/0 /* kube-system/grafana: */
[root@222720-2 ~]# iptables -t nat -L KUBE-SEP-BXYSBSOKGBRCZUIW -n
Chain KUBE-SEP-BXYSBSOKGBRCZUIW (1 references)
target prot opt source destination
KUBE-MARK-MASQ all — 172.17.79.7 0.0.0.0/0 /* kube-system/grafana: */
DNAT tcp — 0.0.0.0/0 0.0.0.0/0 /* kube-system/grafana: */ tcp to:172.17.79.7:3000
ТО есть идёт DNAT с 30300 на 3000 на ip Пода
Не ip адресс принадлежит по сути ноде
и кубер не разрешает вопрсы переезда ip по нодам
С другой стороны NodePort существует на ВСЕХ нодах

Google

Maksim
28.07.2017
11:30:18
и ты можешь поставить балансер до них
либио через dns

kvaps
28.07.2017
11:31:00
то есть эти правила создаются на всех нодах?

Maksim
28.07.2017
11:31:18
NodePort да.

kvaps
28.07.2017
11:31:37
прикольно
В моем случае мне внешний балансер не нужен, т.к. все ноды смотрят в интернет просто, но я кажется придумал как это можно реализовать.
Что если я создам контейнер с network=host и просто буду им ассигнить ip адрес ноде?
может уже есть подобный механизм в kubernetes?
я просто максимально упростить схему, в моем случае один pod - имеет свой ip
еще вопрос: можно ли в NodePort указать чтобы перенапривление шло конкретно с этого ip адреса. Потому что, как я сказал, сервисы будут запущены на одинаковых портах
то есть правило dnat скажем не 0.0.0.0 а например с 11.22.33.44

Роман
28.07.2017
11:38:09
А как мне назначить другую ноду мастером?

Maksim
28.07.2017
11:38:20
ну в BetsPrartic нельзя

kvaps
28.07.2017
11:39:30

Maksim
28.07.2017
11:40:20
https://kubernetes.io/docs/tutorials/stateless-application/expose-external-ip-address/
Хотя не уверен что это работает без внешнего балансировщика
а вообще hostnetwork вроде не работает в кубере

kvaps
28.07.2017
11:42:06
через daemonset вроде работает, думаю и так должен, сча

Google

Maksim
28.07.2017
11:43:06
ds это способ запустить контейнеры на Всех Нодах сразу
то есть на каждой ноде будет экземляр пода

kvaps
28.07.2017
11:43:26
https://github.com/weaveworks/weave/blob/master/prog/weave-kube/weave-daemonset.yaml#L77
hostNetwork: true - мне кажется он и в обычном pod должен сработать
ладно, с этим я разберусь
скажи только, правильно ли я понял, что параметр externalIP определяет адрес, который будет переписываться для правила dnat?

Maksim
28.07.2017
11:46:42
и нода на который это работает
так было в 1.5 но там он уже объявлен как устаревший
в 1.7 его может и не быть , я 1.7 пока не юзаю

kvaps
28.07.2017
11:47:41
у меня сейчас 1.7.2, о чем конкретно ты говоришь?

Maksim
28.07.2017
11:50:39
у меня сейчас кубер версии 1.5.2
1.7.2 я пока не ставил )

kvaps
28.07.2017
11:52:13
Не, я про что ты имеешь ввиду "объявлен устаревшим"?

Maksim
28.07.2017
11:52:41
ну у метода приписка depricated

kvaps
28.07.2017
11:53:02
У ds?

Maksim
28.07.2017
11:53:18
у external-ip

kvaps
28.07.2017
11:59:15
а, сорри
если это то что я думаю, то надеюсь, это решит мою проблему

Maksim
28.07.2017
12:06:42
Ну да. тут ты прав.

Google

kvaps
28.07.2017
12:07:48
отлично, спасибо!
осталось только понять в чем разница от ClusterIP, похоже что он делает ровно тоже самое

Maksim
28.07.2017
12:09:31
ммм
ClusterIP это внутренняя сущность
ПО сути это виртуальный IP который есть только в правилах IPtables
его присваивают сервису, который балансирует трафик в поды
если подов больше одного то поравну.

Sergey
28.07.2017
12:10:37

Maksim
28.07.2017
12:10:54

Sergey
28.07.2017
12:11:08
Почему внезапно?)
внезапно я всегда использую слово внезапно в любой непонятной ситуации

Admin
ERROR: S client not available

Sergey
28.07.2017
12:11:11
внезапно, правда?

Maksim
28.07.2017
12:11:28

Sergey
28.07.2017
12:11:51

Maksim
28.07.2017
12:12:14
нужно ставить кластер ip в реальную адрессацию...

Sergey
28.07.2017
12:12:38

Maksim
28.07.2017
12:12:55
по умолчанию кластерные адреса в NAT адрессации 10.0.0.0/4)

kvaps
28.07.2017
12:13:22

Sergey
28.07.2017
12:13:24
например я сторонник того, чтобы контейнеры имели first-class-адреса и с физическими серверами (например) снаружи k8s маршрутизировались без NAT.

Google

Maksim
28.07.2017
12:14:00
first-class ,
?

Sergey
28.07.2017
12:14:13
ну у вас в инфраструктуре не только k8s есть.
но и еще снаружи от нее какие-то другие сервисы/хосты/виртуалки/контейнеры

Maksim
28.07.2017
12:14:27
ты как с Интереном общаешься? если используешь реальную адрессацию?

kvaps
28.07.2017
12:14:27

Maksim
28.07.2017
12:14:35
все твои сервисы видны...
потому что ClusterIP назначается автоматически при создании сервиса

Sergey
28.07.2017
12:15:02

kvaps
28.07.2017
12:15:13
в моем случае как раз это и требуется :)

Maksim
28.07.2017
12:15:34
У тебя контейнеры имеют публичные адресса?

Sergey
28.07.2017
12:15:38
но вся внутренняя инфраструктура при этом плоская и не содержит натов или точек входа/выхода в k8s

kvaps
28.07.2017
12:15:52

Maksim
28.07.2017
12:15:56
То есть кривые разрабы накодили всякой фигни и ты это голым простите задом в интернет?
китайцев не боишься?
у меня вон сервера по 10-20к трайев по ssh ежедневно отлавливают

Sergey
28.07.2017
12:16:32

Maksim
28.07.2017
12:16:36
в особы удачные дни мы насчитывали миллон запросов в ssh

Sergey
28.07.2017
12:16:52
и нат - это не безопасность :)
https://habrahabr.ru/post/134638/

Maksim
28.07.2017
12:18:47
Ну когда все сети тебе подкотрольны вполне себе

kvaps
28.07.2017
12:19:00