ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

kubernetes——flannel

2021-04-12 19:00:14  阅读:182  来源: 互联网

标签:kubernetes -- 192.168 node1 docker root flannel


kubernetes——flannel

一、Flannel容器集群网络部署

Overlay Network:覆盖网络,在基础网络上叠加的一种虚拟网络技术模式,该网络中的主机通过虚拟链路连接起来

VXLAN:将源数据包封装到UDP中,并使用基础网络的IP/MAC作为外层报文头进行封装,然后在以太网上传输,到达目的地后由隧道端点解封装并将数据发给目标地址

Flannel:是Overlay网络的一种,也将源数据包缝在另一种网络包里面进行路由转发和通信,目前已经支持UDP、VXLAN、AWS、VPC和GCE路由等数据转发方式

在这里插入图片描述

图片详解:

例如有pod1-pod4

pod1将自己的数据和自己的源IP(10.1.15.2)和目标IP(10.1.20.3)打包成数据段,经过docker0的网桥,flannel再进行封包,组成数据包,让在加上源物理IP(192.168.0.100)和目标物理IP(192.168.0.200)组成数据帧,然后经过网络发送给另一台服务器,服务器收到和核对物理IP,然后进行拆封,到docker0网桥,在进行拆封,看虚拟IP再分配给相对应的pod4

一个完成的MTU(数据传输的单元):是1500个字节,包头会占掉20个字节,然后封包会消耗掉30个字节,最终真正能传输的字节为1450个字节

二、部署Flannel

1、部署docker

#在每个node节点上都要部署docker

#安装docker存储仓库

yum-config-manager \

–add-repo
https://download.docker.com/linux/centos/docker-ce.repo

#安装docker

yum install docker-ce docker-ce-cli containerd.io

#启动服务

systemctl start docker

二、Flannel网络配置

1、master配置

#写入分配的子网段到etcd中,供flannel使用

[root@master1 etcd-cert]# /opt/etcd/bin/etcdctl --ca-file=ca.pem --cert-file=server.pem --key-file=server-key.pem --endpoints=“https://192.168.200.11:2379,https://192.168.200.12:2379,https://192.168.200.13:2379” set /coreos.com/network/config ‘{ “Network”: “172.17.0.0/16”, “Backend”: {“Type”:“vxlan”}}’

[root@master1 etcd-cert]# /opt/etcd/bin/etcdctl --ca-file=ca.pem --cert-file=server.pem --key-file=server-key.pem --endpoints=“https://192.168.200.11:2379,https://192.168.200.12:2379,https://192.168.200.13:2379” get /coreos.com/network/config ‘{ “Network”: “172.17.0.0/16”, “Backend”: {“Type”:“vxlan”}}’
{ “Network”: “172.17.0.0/16”, “Backend”: {“Type”:“vxlan”}} #查看写入的信息

在这里插入图片描述

2、node1、2配置

#node1和node2配置一样

#将Flannel软件包移到node1中并解压

[root@node1 ~]# tar zxvf flannel-v0.10.0-linux-amd64.tar.gz

#解压后会产生flanneld、mk-docker-opts.sh、README.md三个文件

#创建k8s工作目录

[root@node1 ~]# mkdir /opt/kubernetes/{cfg,bin,ssl} -p

#将flanneld、mk-docker-opts.sh移到工作目录/bin下

[root@node1 ~]# mv mk-docker-opts.sh flanneld /opt/kubernetes/bin/

#将启动脚本放到node1中并启动

[root@node1 ~]# bash flannel.sh https://192.168.200.11:2379,https://192.168.200.12:2379,https://192.168.200.13:2379

3、Docker识别Flannel

[root@node1 ~]# cat /run/flannel/subnet.env #查看flannel信息

DOCKER_OPT_BIP="–bip=172.17.69.1/24"
DOCKER_OPT_IPMASQ="–ip-masq=false"
DOCKER_OPT_MTU="–mtu=1450"
DOCKER_NETWORK_OPTIONS=" --bip=172.17.69.1/24 --ip-masq=false --mtu=1450"

#修改docker.service文件

[root@node1 ~]# vim /usr/lib/systemd/system/docker.service

EnvironmentFile=/run/flannel/subnet.env #关联flannel的subnet.env文件
ExecStart=/usr/bin/dockerd KaTeX parse error: Expected 'EOF', got '#' at position 80: …tainerd.sock #̲添加DOCKER_NETWORK_OPTIONS,使docker的地址能够变成172.17.69.1

#重启docker服务

[root@node1 ~]# systemctl daemon-reload

[root@node1 ~]# systemctl restart docker.service

4、下载容器

[root@node1 ~]# docker run -it centos:7 /bin/bash

[root@0019a28bf14f /]# yum install -y net-tools #下载为了适应ifconfig,检查IP

5、测试

#在容器内进行测试

[root@0019a28bf14f /]# ping 172.17.1.2 #用node1的容器IP去ping容器2的IP

在这里插入图片描述

标签:kubernetes,--,192.168,node1,docker,root,flannel
来源: https://blog.csdn.net/weixin_51615030/article/details/115635166

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有