Я хочу, чтобы два фланелла использовали разные настройки сети, как их подключить? - PullRequest
0 голосов
/ 19 июня 2019

Чего я хочу добиться, так это: разные команды используют разные подсети, каждый руководитель группы устанавливает свою подсеть и т. Д., Указывает подсеть.

Например,

team1 use 10.1..
team2 use 10.2..

всеЧлены команды устанавливают фланель на своей рабочей станции и указывают на команду руководителя и т. д.Конечно, команда может посетить другую команду.например, 10.2.. можно посетить 10.1...Я предполагаю, что для этого потребуется кластеризация etcd.

с учетом простого сценария: пользователь A и пользователь B установили фланель на своем ноутбуке.настройки сети могут отличаться.пользователь A использует 10.****, пользователь B использует 9.***.как позволить их фланелевой связи разговаривать друг с другом

Вот что я сделал:

Я развернул две flanneld на 2 ВМ на одном аппаратном блоке.он работает, когда я использую настройки сети ниже

etcdctl set /coreos.com/network/config '{ "Network": "10.1.0.0/16", "Backend": { "Type": "vxlan", "VNI": 1} }'

flanneld работает со своим собственным etcd.но два etcd кластеризованы.

Теперь я хочу сделать тест: я хочу установить различные настройки сети на два flanneld:

etcdctl set /coreossub2.com/network/config '{ "Network": "10.2.0.0/16", "Backend": { "Type": "vxlan", "VNI": 2} }' - on VM flanneld2. the flannel.1's ip is10.2.35.0/32

etcdctl set /coreos.com/network/config '{ "Network": "10.1.0.0/16", "Backend": { "Type": "vxlan", "VNI": 1} }' - on VM flanneld1. the flannel.1's ip is10.1.58.0/32

также отредактировал /etc/sysconfig/flanneld виспользуйте новый сетевой префикс.Я ожидаю увидеть, что flanneld1 может пинговать flanneld2.другими словами, ip 10.1.. может пропинговать 10.2..

результат запроса etcd:

http://192.168.31.5:2379/v2/keys/**coreossub2.com**/network/subnets:
{"action":"get","node":{"key":"/coreossub2.com/network/subnets","dir":true,"nodes":[{"key":"/coreossub2.com/network/subnets/10.2.35.0-24","value":"{"PublicIP":"192.168.31.5","BackendType":"vxlan","BackendData":{"VtepMAC":"5a:da:1e:82:b4:47"}}","expiration":"2019-06-20T01:11:04.53312Z","ttl":85681,"modifiedIndex":15,"createdIndex":15}],"modifiedIndex":13,"createdIndex":13}}

http://192.168.31.5:2379/v2/keys/**coreos.com**/network/subnets
{"action":"get","node":{"key":"/coreos.com/network/subnets","dir":true,"nodes":[{"key":"/coreos.com/network/subnets/10.1.58.0-24","value":"{"PublicIP":"192.168.31.253","BackendType":"vxlan","BackendData":{"VtepMAC":"12:11:b8:cf:ba:7e"}}","expiration":"2019-06-20T01:23:31.4882784Z","ttl":84531,"modifiedIndex":18,"createdIndex":18}],"modifiedIndex":8,"createdIndex":8}}

Они используют другой ключ (это то, что я ожидал).vtepmac - это flannel.1.

Flannel version: 0.7.1
Backend used :vxlan
Etcd version: 3.3.11-2
Operating System and version: centos 7

Я думаю, причина в том, что фланель не может позволить vtep, используя тот же ключ (префикс сети), соединяться друг с другом.потому что они находятся в одном списке узлов.Когда я использую другой сетевой префикс.Vtep находятся в другом списке узлов.поэтому фланель не может позволить им дотянуться друг до друга.

...