陈奇网络工作室

k8s部署---Flannel组件部署(2)

云计算

部署Flannel容器集群网络

Overlay Network :覆盖网络并叠加在底层网络上的虚拟网络技术模型。 此网络中的主机通过虚拟链路连接

VXLAN :将源数据包封装为UDP,将基础网络的IP/MAC封装为外侧信息包头后,在以太网上传输,到达目的地后在隧道侧解除封装,将数据发送到目的地址

Flannel:Overlay网络的一种,将源数据包封装在其他网络数据包中进行路由转发和通信。 目前,支持UDP、VXLAN、AWS、VPC、GCE路由等数据传输方式

Flannel介绍

Flannel是酷睿操作系统团队为Kubernetes设计的一种板载网络工具,旨在帮助所有使用Kuberentes的酷睿操作系统主机拥有完整的子网

Flannel通过为每个宿主机分配子网为容器提供虚拟网络。 它基于Linux TUN/TAP,使用UDP封装IP数据包以创建复盖网络,并使用etcd维护网络分配。

Flannel原理

Flannel是酷睿操作系统团队针对Kubernetes设计的网络规划服务。 简而言之,这是一种使群集中不同节点主机创建的docker容器具有全集特定虚拟IP地址的功能。

在默认的docker配置中,每个节点的docker服务负责为其节点容器分配IP。 节点内部的容器之间可以相互访问,但主机( Node )网络之间不能相互通信。

Flannel的设计目的是重新规划群集中所有节点的IP地址使用规则,以使不同节点上的容器能够获得“属于同一内部网”和“不重叠”的IP地址,从而使不同节点上的容器能够在内部

Flannel使用etcd保存配置数据和子网分配信息。 当flannel启动时,后台进程首先获取配置和使用中的子网列表,然后选择可用子网并尝试注册。

etcd还存储与每台主机相对应的ip。 flannel使用etcd的watch机制监视/coreos.com/network/subnets下所有元素的更改信息,并相应地维护路由表。

为了提高性能,flannel优化了Universal TAP/TUN设备,并代理了TUN和UDP之间的ip分片。

Flannel电路图

如图所示,Flannel的工作方式可以解释如下。

数据从源容器发送后,通过主机上的docker0虚拟网卡传输到flannel0虚拟网卡。 这是P2P虚拟网卡,flanneld服务器在网卡的另一端被监听。

Flannel通过Etcd服务器维护节点间的路由表,该表保存了各节点主机的子网段信息。

源主机的flanneld服务将原始数据内容进行UDP封装后,按照自己的路由表送达目标节点的flanneld服务,在数据到达后解包,直接到达目标节点的flannel0虚拟网络传输到目标主机上的docker0虚拟网卡,最后通过docker0路由到达目标容器,如本地容器通信。

除了UDP之外,Flannel还支持许多其他Backend :

udp :使用用户状态的udp封装,缺省情况下使用8285端口。 由于用户状态下的打包和打包,性能有很大的损失

VX LAN—需要VX LAN封装、VNI、端口、默认值8472和GBP配置

host-gw :一种直接路由方式,将容器网络的路由信息直接更新到主机路由表中,仅适用于两层可直接到达的网络

AWS-VPC :使用amazonvpcroutetable创建路由并将其应用于在AWS上运行的容器

GCE :使用googlecomputeenginenetwork创建路由。 所有实例都必须打开IP转发,并且应用于在GCE上运行的容器

Ali-VPC :使用AlibabaCloud (阿里巴巴云) VPC route table创建路由,并应用于在AlibabaCloud (阿里巴巴云)上运行的容器

实验性配置

实验环境

大师01:192.168.80.12

Node01:192.168.80.13

节点02:192.168.80.14

由于本实验是在上一篇文章之后引入的,因此实验环境没有变化。 Flannel只需部署到节点上,而不需要部署到主节点上

Flannel的引进

在node01、node02节点上部署文档容器

% 5b root % 40 node 01~% 5d % 23 yum install-yyum-utils device-mapper-persistent-datalvm2% 2f % 2f % E4 % be % 9d % E5 1 % AE % E3 % 82 % a4 % E3 % 83 % B3 % E3 % 82 % B9 % E3 % 83 % 88 % E3 % 83 % BC % E3 % 83 % ab % 0a % E3 % 83 % ad % E3 % 83 % ad % E3 % E3 % 83 % 83 % 83 % B9 % B9 % B9 % B9 % %3afastestmirror % 0a base % 20 % 7c % 203.6 % 20kb % 2000 % 3a 00 % 3a 00 % 0a extras % 20 % 7c % 202.9 % 20kb % 2000 % 3a 00 % 3a 00 - repo https://mirrors.a liyun.com % 2f docker-ce % 2f Linux % 2f centos % 2f docker % 0a % E3 % 83 % ad % E3 % 83 % BC % E3 % 83 E3 % 83 % B3 %3afastestmirror %0aaddingrepofrom % 3a https://mirrors.a liyun.com % 2f docker-ce % 2f Linux % 2f centos % 2f docentos % 2f doce % 2f docker-ce % 2f Linux % 2f centos % 2f docker-ce.repoto % 2f etc % 2f yum.repos.d % 2f docker %0areposavedto % 2f etc % % 23 yum install-y docker-ce % 2f % 2f docker-ce % E3 % 81 % AE % E3 % 82 % a4 % E3 % 83 % B3 % E3 % 82 % B9 % E3 % 83 % 88 E3 % 83 % 97 % E3 % 83 % a9 % E3 % 82 % B0 % E3 % 82 % a4 % E3 % 83 % B3 %3afastestmirror % 0a docker-ce-stable % 20 % 7c le % 2f x86 _ 64 %2fupdateinfo % 7c55b 00 % 3a 00 % 3a 01 % 0a % ef % BC % 882 %2F2 % ef % BC % 89 docker-ce-stable % 2f x86 cached hostfile % 0a . % 0a % 5b root % 40 node 01~% 5d % 23 systemctlstartdocker.service % 2f % 2f docker % E3 % 82 % b5 % E3 % 5b root % 40 node 01~% 5d % 23 systemctlenabledocker.service % 2f % 2f % e9 % 9b % bb % E6 % ba % 90 % E6 % 8a % 95 % E5 % 85 % 85 % A8 % ad % E5 % AE % 9a % E3 % 81 % 99 % E3 % 82 % 8b %0acreatedsymlinkfrom % 2f etc %2fsys temd % 2f system % 2f multi-user stemd % 0a % 5b root % 40 node 01~% 5d % 23 tee % 2f etc % 2f docker %2fdaemon.JSON-% 5c % 5c % 26 amp % 3b quot %3beof % 5c % aa % E3 % 83 % B3 % E3 % 82 % B0 % E3 % 83 % bb % E3 % 82 % a2 % E3 % 82 % af % E3 % 82 % bb % E3 % 83 % a9 % E3 % 83 % AC % EC % 83 % AC % AC % ed gistry-mirrors % 3a % 5b https://% 2a % 2a % 2a % 2a % 2a % 2a % 2a % aliyuncs.com % 5d % 0a % 7d % 20 % 0a eof % 0a % 7b % 20 5d % 0a % 7d % 20 % 0a % 5b root % 40 node 01~% 5d % 23 systemctldaemon-reload % 2f % 2f % E3 % 83 % aa % E3 % 83 % ad % E3 % ad % E3 % ad % E3 % ad % ad % E3 % E3 % ad % E3 % E3 ode 01~~ % 5d % 23 systemctlrestartdocker % 2f % 2f % E5 % 86 % 8d % E8 % b5 % B7 % E5 % 8b % 95 docker % 0a % 5b root % 40 node 00 83 % ab % E3 % 83 % BC % E3 % 83 % 86 % E3 % 82 % a3 % E3 % 83 % B3 % E3 % 82 % B0 % E8 % bb % a2 % e9 % 80 % 81 % E6 % a9 % 96 % a9 % 93 % B3 % B3 % a9 % B3 % 20 for % 20 more % 20 information % ef % BC %8cseesysctl.conf % ef % BC % 885 % ef % BC % 89 and % 20 sysctl.d % 285 % ef % a % 5b root % 40 node 01 % 20~% 5d % 23 % 20 sysctl % 20-p % 20 % 2f % 2f % E3 % 83 % aa % E3 % 83 % ad % E3 % 83 % BC % E3 % network restart % 2f % 2f % E5 % 86 % 8d % E8 % b5 % B7 % E5 % 8b % 95 % E3 % 83 % 83 % E3 % 83 % 88 % E3 % 83 % 83 % E3 % 83 % E3 % 83 % 83 % 83 % E3 % 83 % E3 % 83 % 83 % 83 % 8 % 5b ok % 5d % 0a % 5b root % 40 node 01~% 5d % 23 systemctlrestartdocker % 2f % 2f docker % E3 % 82 % b5 % E3 % 83 % BC % E3 ot % 40 node 01 % 20~% 5d % 23 % 20 docker % 20 version % 0a client %3adockerengine-community % 2f % 2f docker % E3 % 83 % 90 % 3 % 82 % 8b % 0a version % 3a % 2019.03.5 % 0a API % 20 version % 3a % 201.40 % 0a go % 20 version % 3a % 20go1. 12.12 % 0a % B0 % 8e % E5 % 85 % a5 % E3 % 81 % 8c % E5 % AE % 8c % E4 % ba % 86 % E3 % 81 % 97 % E3 % 81 % be % E3 % 81 % 97 % E3 % 81 % E3 % 81 % 81 % E3 % 81 % 81 % 81 % a3 % a3 % 81 % a d % 9c % 0a % 5b root % 40 master 01e TCD-cert % 5d % 23 % 2f opt %2fetcd % 2f bin % 2f % 20 etc dctl-- ca-file % 3d ca.PEM % 3d 3359192.% 20https://192.168.80.14 % 3a 2379 set %2fcor EOS.com % 2f network % 2f config % 5c % 5c % 26 amp % 3b quot % 3b % 3b quot % 3b b % 20 network % 3a % 20172.17.0.0 %2F16 % ef % BC %8CBA ckend % 3a % 20 %7btype % 3a % 20vx LAN % 7d % 7d % 0a % 5b root file % 3d ca.PEM-- cert-file % 3d server.PEM-key-file % 3d server-key.PEM-end points % 3359192.% 0a % 7b % % 3a % 20vx LAN % 7d % 7d % 0a % 5b root % 40 master 01e TCD-cert % 5d % 23cd . % 2f % 2fk8s % E3 % 83 % 87 % E3 % 82 % a3 % E3 % E3 % E3 % a3 % E3 % E3 % E3 % E3 % E3 % E3 5b root % 40 master 01 k8s % 5d % 23ls % 2f % 2f flannel % E3 % 83 % 91 % E3 % 83 % E3 % 82 % B1 % E3 % 83 % BC % E3 % 82 % b8 3 % 81 % 86 % E3 % 81 % 8b % E3 % 82 % 92 % E8 % aa % BF % E3 % 81 % B9 % E3 % 82 % 8b %0ACF SSL.she TCD-v 3.3.10-linue UX-amd64.tar.gz %0aet CD.sh flannel-v 0.10.0-Linux-amd64.tar.gz % 0a % 5b root % 40 master 01 k8s % 5d % 23 scp

% 5b root % 40 master 01 k8s % 5d % 23 scp flannel-v 0.10.0-Linux-amd64.tar.gz flannel.sh root % 40192.168.80.14 b quot % 3bs password % 3a % 0a flannel-v 0.10.0-Linux-amd64.tar.gz 100 % 9479 kb 119.3 MB % 2fs 00 % 3a 00 % 0a flannel . 3 % 8e % E3 % 83 % BC % E3 % 83 % 89 % E3 % 81 % AE % E5 % 90 % 8c % E6 % 9c % 9c % 9f % E6 % 93 % 8d % E4 % BD % 9c % 0a % 5b root 2 % b8 % E3 % 81 % 8c % E6 % ad % a3 % E5 % b8 % b8 % E3 % 81 % ab % E3 % 82 % B3 % E3 % 83 % 94 % E3 % 83 % BC % E3 % 81 % 95 % 82 % 8b % 0a anaconda-ks.cf gflannel-v 0.10.0-Linux-amd64.tar.gz % 0a % 5b root % 40 node 01~% 5d % 23 tarzxvfffff 3 % 83 % 91 % E3 % 83 % 83 % E3 % 82 % B1 % E3 % 83 % BC % E3 % 82 % b8 %0aflanneld % 0a MK-docker-opts.sh % 0a自述c % 8cb in % ef % BC %8cssl % 7d % 20-p % 20 % 2f % 2f % E5 % 86 % 8d % E5 % b8 % B0 % E7 % 9a % 84 % E3 % 81 % abk8s % E4 % 83 % aa % E3 % 82 % 92 % E4 % BD % 9c % E6 % 88 % 90 % E3 % 81 % 99 % E3 % 82 % 0a % 5b root % 40 node 01~~ % 5d % 23 mvmk 82 % af % E3 % 83 % aa % E3 % 83 % 97 % E3 % 83 % 88 % E3 % 83 % 95 % E3 % 82 % a1 % E3 % 82 % a4 % E3 % 83 % ab % E3 % 82 % 92 % ab % E3 % 82 % 82 % E3 % 82 % 82 % 95 % 88 % 88 3 % 82 % af % E3 % 83 % 88 % E3 % 83 % aa % E3 % 81 % AE % E4 % b8 % 8b % E3 % 81 % aebin % E3 % 83 % 87 % E3 % 82 % a3 % E3 % a3 % E3 % E3 % 83 % a3 % 83 % b8 % 8b % 0a % 5b root % 40 node 01~% 5d % 23 vim flannel.sh % 2f % 2f flannel % E5 % AE % 9f % E8 % a1 % 8c % E3 % 82 % B9 % E3 % % 97 % E3 % 81 % a6 % E3 % 83 % 97 % E3 % 83 % ad % E3 % 83 % 95 % E3 % 82 % 82 % a4 % E3 % 83 % ab % E3 % 82 % 92 % ndpoints % 3d % 24 %7B1 % 3a-http://127.0.0.1 % 3a 2379 % 7d %0ACAT eof % 2f opt %2fkubernetes % 2f CFG %2fflanneld % 0a % 7d % 5c % 5c % 5c % 5c % 26 amp % 3b quot % 3b % 0a-etcd-ca file % 3d % 2f opt %2fetcd % 2f SSL % 2f ca.PEM % 5c % 5c % 5c etcd-keyfile % 3d % 2f opt %2fetcd % 2f SSL % 2f server-key.PEM % 0a eof %0ACAT eof % 2f usr % 2f lib %2fsys temd % 2f system ldoverlayaddressetcdagent % 0a after % 3d network-online.target network.target % 0a before % 3d docker.service % 0a % 5b % dnotify %0aenvironmentfile % 3d % 2f opt %2fkubernetes % 2f CFG %2fflanneld %0aexecstart % 3d % 2f opt %2fkubernetes % 2f bin annel _ options %0aexecstartpost % 3d % 2f opt %2fkubernetes % 2f bin % 2f MK-docker-opts.sh-k docker _ network _ optts % 0a % 5b install % 5d %0awantedby % 3d multi-user.target % 0a eof %0asystemctl % 20 daemon-reload %0asystemctl % 20 enabled awq % 0a % 5b root % 40 node 01~% 5d % 23 bash flannel.sh https://192.168.80.12 % 3a 2379 % E3 % 80 % 81https://192.168.80 TC %2fsys temd % 2f system % 2f multi-user.target.wants %2fflanneld.service to % 2f usr % 2f lib %2fsys temd %2fsys temd %2fsys d % 2f system % 2f docker.service % 2f % 2f docker % E8 % b5 % B7 % E5 % 8b % 95 % E3 % 82 % B9 % E3 % 82 % af % E3 % 83 % aa % aa nel % E3 % 81 % ab % E6 % 8e % a5 % E7 % B6 % 9a % E3 % 81 % 99 % E3 % 82 % 8b % 0a . % 0a % 5b % E3 % 82 % b5 % E3 % 83 % BC groupsbecausethedelegateissuesstill % 0a % 23 existsandsystemdcurrentlydoesnotsupportthecgroupfeaturesetrequired % 0a % 23 % 20 r %0aenvironmentfile % 3d % 2f run % 2f flannel % 2f subnet.env % 2f % E6 % 8e % a5 % E7 % B6 % 9a % E5 % AE % 9f % E8 % 2f bin %2fdock erd % 24 docker _ network _ options-HFD % 3a % 2f % 2f-- containerd % 3d % 2f run %2fcontainerd %2fcontaintion outsec % 3d0% 0a . % 0a % 3a wq % 0a % 5b root % 40 node 01~~ % 5d % 23 cat % 2f run % 2f flannel % 2f subnet.env % 2f % 2f docket % B6 %9aflannel % E3 % 83 % 95 % E3 % 82 % a1 % E3 % 82 % a4 % E3 % 83 % ab % E3 % 82 % 92 % E8 % a6 % 8b % E3 % 82 % 8b % 0a q % 3d false % 0a docker _ opt _ MTU % 3d-- MTU % 3d 1450 % 0a docker _ network _ options % 3d-- bip % 3d 172.17.49.1 7 % E5 % 8b % 95 % E6 % 99 % 82 % E3 % 81 % AE % E3 % 82 % b5 % E3 % 83 % 8d % E3 % 83 % 83 % 83 % 88 % E3 % 88 % E3 % 81 % 93 % E3 % 81 % a7 % E3 % 81 % af node 01 % E3 % 81 % A8 % 0a % E3 % 83 % 83 % E3 % 83 % 88 % E3 % 82 % 92 % E3 % 83 % aa % E3 % 83 % ad % E3 % 83 % BC % E3 % 83 % E3 % 83 % 97 % E3 % 83 % ad % 82 % bb % E3 % 82 % B9 % 0a % 59 % 8 % b5 % B7 % E5 % 8b % 95 % E3 % 81 % 99 % E3 % 82 % 8b % 0a % 5b root % 40 node 01 % 20~% 5d % 23 % 20 ifconfig % 20 % 2f % 2f % 2f % 2f

ens33: flags=4163UP,BROADCAST,RUNNING,MULTICAST mtu 1500

inet 192.168.80.14 net mask 255.255.255.0 broadcast 192.168.80.255

.

flannel.1: flags=4163UP,BROADCAST,RUNNING,MULTICAST mtu 1450

inet 172.17.63.0net mask 255.255.255.255 broadcast0.0.0//flannel网卡信息

.

lo: flags=73UP,LOOPBACK,RUNNING mtu 65536

inet 127.0.0.1 netmask 255.0.0.0

.

[ root @ node 02~] #使用ping 172.17.49.1//ping命令测试网络是否互操作

萍172.17.49.1 ( 172.17.49.1 ) 56 ) 84 ) bytes of data。

64 bytes from 172.17.49.1:icmp _ seq=1TTL=64 time=0.344 ms

64 bytes from 172.17.49.1:icmp _ seq=2TTL=64 time=0.333 ms

64 bytes from 172.17.49.1:icmp _ seq=3TTL=64 time=0.346 ms

^C

----172.17.49.1 ping statistics-- -

3 packets transmitted,3 received,0% packet loss,time 2000ms

RTT min/avg/max/mdev=0.333/0.341/0.346/0.005 ms

使用node01、node02节点服务器

root @ node 01~~ # docker run-it centos:7/bin/bash//docker执行镜像

unabletofindimage\\\& #039; centos:7\\\& quot; 本地

7: Pulling from library/centos

ab5ef0e58194: Pull complete

digest:sha 256:4a 701376 d 03 F6 b 39b8C2 A8 F4 A8 e 499441 b0d 567 F9 ab 58 e 4991 de 4472 FB 813 c

status:downloadednewerimageforcentos:7

[ root @ e 8ee 45 a4fd 28/] # yuminstallnet-tools-y//在容器中安装网络工具

Loaded plugins: fastestmirror,ovl

determining快速镜像

* base: mirrors.163.com

* extras: mirrors.163.com

.

使用node01服务器

[ root @ e 8ee 45 a4fd 28/] # ifconfig//查看网卡信息

eth0: flags=4163UP,BROADCAST,RUNNING,MULTICAST mtu 1450

inet 172.17.49.2 net mask 255.255.255.0 broadcast 172.17.49.255

.

lo: flags=73UP,LOOPBACK,RUNNING mtu 65536

inet 127.0.0.1 netmask 255.0.0.0

.

使用node02服务器

[ root @ 47 a a8b 55 a61 a/] # ifconfig//查看网卡信息

eth0: flags=4163UP,BROADCAST,RUNNING,MULTICAST mtu 1450

inet 172.17.63.2 net mask 255.255.255.0 broadcast 172.17.63.255

.

lo: flags=73UP,LOOPBACK,RUNNING mtu 65536

inet 127.0.0.1 netmask 255.0.0.0

.

[ root @ 47 a A8 b 55 a61 a/] # ping 172.17.49.2//node 02服务器中的docker容器将测试是否可以使用ping命令与node01服务器中的docker进行通信

萍172.17.49.2 ( 172.17.49.2 ) 56 ) 84 ) bytes of data。

64 bytes from 172.17.49.2:icmp _ seq=1TTL=62 time=0.406 ms

64 bytes from 172.17.49.2:icmp _ seq=2TTL=62 time=0.377 ms

64 bytes from 172.17.49.2:icmp _ seq=3TTL=62 time=0.389 ms

64 bytes from 172.17.49.2:icmp _ seq=4TTL=62 time=0.356 ms

^C

----172.17.49.2 ping statistics-- -

4 packets transmitted,4 received,0% packet loss,time 3001ms

RTT min/avg/max/mdev=0.356/0.382/0.406/0.018 ms//通信成功

Flannel组件的导入完成

详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn

相关推荐

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3