Size: a a a

Kubernetes — русскоговорящее сообщество

2020 February 26

A

Alexander in Kubernetes — русскоговорящее сообщество
Let Eat Bee
L2 между подами идёт бонусом. Vxlan просто стандартный туннель не лучше   не хуже других
А зачем туннель как таковой (без учета бонусов)? Чем l3 связности между подами недостаточно?
источник

LB

Let Eat Bee in Kubernetes — русскоговорящее сообщество
Alexander
А зачем туннель как таковой (без учета бонусов)? Чем l3 связности между подами недостаточно?
Блин, я уже не знаю как объяснить :) нужно туннелировать так как нету L2 между нодами, взяли vxlan. Никаких других смыслов нет
источник

A

Alexander in Kubernetes — русскоговорящее сообщество
Let Eat Bee
Блин, я уже не знаю как объяснить :) нужно туннелировать так как нету L2 между нодами, взяли vxlan. Никаких других смыслов нет
Т.е. просто туннель ради туннеля? :D
источник

LB

Let Eat Bee in Kubernetes — русскоговорящее сообщество
Alexander
Т.е. просто туннель ради туннеля? :D
Блин. Как вы протащите сеть подов 10.0.0.0/24 по сети нод 192.168.0.0/24 без L2 между нодами и и без туннелей
источник

L

Lucky SB in Kubernetes — русскоговорящее сообщество
Let Eat Bee
Блин. Как вы протащите сеть подов 10.0.0.0/24 по сети нод 192.168.0.0/24 без L2 между нодами и и без туннелей
пропишет руками маршрутизацию на всех промежуточных роутерах. делов то....
:sarcasm:
источник

S

Stefan in Kubernetes — русскоговорящее сообщество
@identw а при федерации кубера, они на сетевом уровне друг к другу должны иметь доступ? или kubefed это как-то хитро делает через контексты кластеров?
источник

A

Alexander in Kubernetes — русскоговорящее сообщество
Let Eat Bee
Блин, я уже не знаю как объяснить :) нужно туннелировать так как нету L2 между нодами, взяли vxlan. Никаких других смыслов нет
У меня просто вопрос вот в чем: есть сеть построенная на l3, там кубер, есть l3 связность между подами средствами самой сети. Зачем может понадобиться делать l2 связность между подами через vxlan, если представить, что сервисам в кубере броадкасты/мультикасты не требуются?
источник

AM

Anton MelkoV in Kubernetes — русскоговорящее сообщество
Привет! А сертификаты для кублета сложно обновлять? xD
источник

L

Lucky SB in Kubernetes — русскоговорящее сообщество
Anton MelkoV
Привет! А сертификаты для кублета сложно обновлять? xD
Нет.
источник

A

Alexander in Kubernetes — русскоговорящее сообщество
Lucky SB
пропишет руками маршрутизацию на всех промежуточных роутерах. делов то....
:sarcasm:
Зачем руками? На роутерах эта информация уже и так по bgp/ospf распространяется.
источник

ВЕ

Валентин Еловский... in Kubernetes — русскоговорящее сообщество
Alexander
У меня просто вопрос вот в чем: есть сеть построенная на l3, там кубер, есть l3 связность между подами средствами самой сети. Зачем может понадобиться делать l2 связность между подами через vxlan, если представить, что сервисам в кубере броадкасты/мультикасты не требуются?
Так, вопрос в чем именно?
1) почему у cillium - vxlan
2) почему вообще vxlan, а не какой-то другой cni (тогда предложите свой)
источник

AM

Anton MelkoV in Kubernetes — русскоговорящее сообщество
Lucky SB
Нет.
Спасибо, нашел твою статью на хабре)))
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Stefan
@identw а при федерации кубера, они на сетевом уровне друг к другу должны иметь доступ? или kubefed это как-то хитро делает через контексты кластеров?
Сори, опыта с  федерацией  в проде нет.  Когда ее смотрел она была совсем другая, сейчас вообще какая-то новая. Только присматриваюсь к ней. Думаю там поднимается отдельные бинари для федерации, и они выстапают в роли api сервера для тебя. Вот они точно должны иметь доступ ко всем кластерам в федерации. Ты обращаешься к api серверу федерации, а он уже там сам рулит куда какие поды запустить. Ну так раньше было по крайней мере, и не для всех типов ресурсов работало
источник

L

Lucky SB in Kubernetes — русскоговорящее сообщество
Alexander
Зачем руками? На роутерах эта информация уже и так по bgp/ospf распространяется.
ну значит тебе не надо. а всем остальным, у которых нет доступа к управлению промежуточными роутерами и возможности пихать приватные сетки в bgp - нужны туннели
источник

A

Alexander in Kubernetes — русскоговорящее сообщество
Валентин Еловский
Так, вопрос в чем именно?
1) почему у cillium - vxlan
2) почему вообще vxlan, а не какой-то другой cni (тогда предложите свой)
2. Без оверлейных сетей можео по-разному сделать:
1. По сабнету на кубелет и анонсировать их с самих машин (минус - нужно настраивать динамическую маршрутизацию на нодах, а также париться с кучей сабнетов)
2. Спустить еще один влан тегом с ToR-ов и пусть маршрутизацией заморачивается сетевая инфраструктура.
источник

DS

Dmitry Sergeev in Kubernetes — русскоговорящее сообщество
Lucky SB
ну значит тебе не надо. а всем остальным, у которых нет доступа к управлению промежуточными роутерами и возможности пихать приватные сетки в bgp - нужны туннели
+
источник

ВЕ

Валентин Еловский... in Kubernetes — русскоговорящее сообщество
Alexander
2. Без оверлейных сетей можео по-разному сделать:
1. По сабнету на кубелет и анонсировать их с самих машин (минус - нужно настраивать динамическую маршрутизацию на нодах, а также париться с кучей сабнетов)
2. Спустить еще один влан тегом с ToR-ов и пусть маршрутизацией заморачивается сетевая инфраструктура.
У нас кубер, ему нужен CNI. Раз он всяко нужен - то почему б не потестить всё что есть, не выяснить, что vxlan шустрый, и не заюзать его? Собственно Cillium умеет в ipvlan еще, он быстрый, но из-за изоляции от хоста там не всё работает
источник

S

Slach in Kubernetes — русскоговорящее сообщество
Dzmitry Zimin
т.е. по факту остается кеш? это можно настроить для GC чтоб GC чистил память?
обратный Resolve это DNS PTR Query

ок попытаюсь показать на пальцах
- есть Pod chi-test-011-secured-cluster-default-0-0-0
- внутри которого запущен clickhouse-server
у которого для default пользователя прописано <host_regexp>chi-test-011-secured-cluster-[^.]+\d+-\d+\.test.svc.cluster.local$</host_regexp> - это значит что коннект разрешен только с ip адресов зарезервированных для сервисов
- есть другой Pod chi-test-011-secured-cluster-default-1-0-0

- есть сервисы ClusterIP chi-test-011-secured-cluster-default-0-0 -> ведет на Pod chi-test-011-secured-cluster-default-0-0-0 и chi-test-011-secured-cluster-default-1-0 -> chi-test-011-secured-cluster-default-1-0-0

делаю


kubectl -n test exec chi-test-011-secured-cluster-default-0-0-0 -n test -- clickhouse-client -h chi-test-011-secured-cluster-default-1-0 --port=9000 -u default  --query="select 'OK'" 2>&1


получаю ошибку

Code: 195. DB::Exception: Received from chi-test-011-secured-cluster-default-1-0:9000. DB::Exception: User default is not allowed to connect from address 172.17.0.2.

при этом если сделать
```
kubectl -n test exec chi-test-011-secured-cluster-default-0-0-0 -- bash -x -c "apt update && apt install -y dnsutils; nslookup chi-test-011-secured-cluster-default-1-0; nslookup chi-test-011-secured-cluster-default-1-0-0; nslookup --type=PTR 172.17.0.2"
```

получаю
```
+ nslookup chi-test-011-secured-cluster-default-1-0
Server:              10.96.0.10
Address:     10.96.0.10#53

Name:        chi-test-011-secured-cluster-default-1-0.test.svc.cluster.local
Address: 172.17.0.10


+ nslookup chi-test-011-secured-cluster-default-1-0-0
Server:              10.96.0.10
Address:     10.96.0.10#53

** server can't find chi-test-011-secured-cluster-default-1-0-0: NXDOMAIN


+ nslookup --type=PTR 172.17.0.2
2.0.17.172.in-addr.arpa      name = 172-17-0-2.clickhouse-test-011-secured-cluster.test.svc.cluster.local.
```

то есть такое ощущение что сервис chi-test-011-secured-cluster-default-1-0
есть
но еще не нашел под по селекторам  

если чуть позже сделать
```
kubectl -n test exec chi-test-011-secured-cluster-default-0-0-0 -- bash -x -c "nslo
okup chi-test-011-secured-cluster-default-1-0; nslookup chi-test-011-secured-cluster-default-1-0-0; nslookup --type=PTR 172.17.0.2"
```

то получаю все как надо
```
+ nslookup chi-test-011-secured-cluster-default-1-0
Server:         10.96.0.10
Address:        10.96.0.10#53

Name:   chi-test-011-secured-cluster-default-1-0.test.svc.cluster.local
Address: 172.17.0.10

+ nslookup chi-test-011-secured-cluster-default-1-0-0
Server:         10.96.0.10
Address:        10.96.0.10#53

** server can't find chi-test-011-secured-cluster-default-1-0-0: NXDOMAIN

+ nslookup --type=PTR 172.17.0.2
2.0.17.172.in-addr.arpa name = chi-test-011-secured-cluster-default-0-0-0.chi-test-011-secured-cluster-default-0-0.test.svc.cluster.local.
```

вот я и спрашиваю, как отследить что сервис нашел поды на которые будет форвардить трафик?
источник

MK

Maksim Kholodkov in Kubernetes — русскоговорящее сообщество
Всем привет, может сталкивался кто, у нас etcd не был настроен как кластер, каждый мастер смотрел на https://127.0.0.1:2379
из-за этого вечто 1 мастер был перегружен
решили развернуть кластер, в лб добавил правило на *:2379 уходящее в мастера *:2379
но столкнулся с проблемой на скрине, и в целом непонимания, правильно ли делаю...
источник

A

Alexander in Kubernetes — русскоговорящее сообщество
Валентин Еловский
У нас кубер, ему нужен CNI. Раз он всяко нужен - то почему б не потестить всё что есть, не выяснить, что vxlan шустрый, и не заюзать его? Собственно Cillium умеет в ipvlan еще, он быстрый, но из-за изоляции от хоста там не всё работает
Я не про тесты, а про окончательный выбор решения для продакшена. Зачем париться с vxlan и усложненным дебагом проблем, связанных с ним, если можно просто воспользоваться l3 связностью, которую уже предоставляет сетевая инфраструктура? В кубере сеть и так устроена не самым простым образом, чтобы ее без нужды еще и оверлейными сетями усложнять.
источник