ICode9

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

kubernetes 集群中Flannel的使用说明

2021-03-22 15:01:09  阅读:183  来源: 互联网

标签:网段 kubernetes minion 集群 etcd docker Flannel flannel


kubernetes 集群中Flannel的使用说明

童飞 360云计算

女主宣言

docker作为容器云的中非常具有代表性的产品,近年来收到非常广泛的关注,而如何对docker这样的容器云进行管理也是一件非常头疼的事情,本文主要通过对k8s集群管理中flannel组件的分析讨论,来为大家了解docker集群管理提供一点帮助。
PS:丰富的一线技术、多元化的表现形式,尽在“HULK一线技术杂谈”,点关注哦!

k8s集群安装配置etcd的时会为安装的k8s集群配置一个网段,这个网段是整个集群中容器可以使用的ip地址段,譬如我们在安装完成etcd的时候执行etcdctl set 设置一个key-value的键值对指定这个集群的网段范围,但是如何确保每个minion节点中容器的ip地址是唯一的,就需要flannel来帮忙了,flannel基于集群的这个网段来为每个minion节点做二次子网的划分。接下来我们为大家分析flannel和etcd是如何协同搭配完成这一工作的。
在安装配置k8s集群时候需要为每一个minion节点安装flannel,我们主要从配置文件入手来分析flannel是怎样工作来完成对集群子网的二次划分。
flannel配置文件flanneld如下:


# Flanneld configuration options
# etcd url location.  Point this to the server where etcd runs
FLANNEL_ETCD="http://192.168.163.152:2379"
# etcd config key.  This is the configuration key that flannel queries
# For address range assignment
FLANNEL_ETCD_KEY="/coreos.com/network"
# Any additional options that you want to pass
#FLANNEL_OPTIONS=""

在配置文件中我们看到指定了两个参数一个是FLANNEL_ETCD这个值指定的是我们安装etcd服务端的地址和端口,可以通过netstat 命令看下minion端的连接状态,可以看到minion端与etcd服务端etcd的端口相连接,这个设置是让minion节点的flannel能够与服务端的etcd保持通信:
kubernetes 集群中Flannel的使用说明
minion节点中flannel的链接状态

第二个值FLANNEL_ETCD_KEY是指定的一个key,我们在安装etcd服务端时执行了一条命令:


etcdctl -C 192.168.163.148:2379 set /coreos.com/network/config '{ "Network": "192.168.0.0/16" }'

这个值很重要,这个key对应的value就是我们每个minion机为docker设置的启动参数范围。先看一张图,这张图是minion机docker的启动参数
kubernetes 集群中Flannel的使用说明
minion1 docker启动参数
kubernetes 集群中Flannel的使用说明
minion2 docker启动参数

需要注意的是docker启动参数中的 --bip=192.168.102.1/24这个参数,flannel的作用就是修改了这个参数相当于为每一台minion主机的docker划分了子网。再通过ifconfig查看下可以看到图:
kubernetes 集群中Flannel的使用说明
minion2 的网口信息

多了一个docker的虚拟网卡,所以我们在安装kubernetes时如果发现我们安装完docker后docker0网卡的网段不在FLANNEL_ETCD_KEY中那将会导致docker无法启动,在kubernetes node上执行kubectl get node将会显示node节点 not ready。

综上所述

flannel作为coreos提供给k8s的组件,在运行过程中通过与etcd进行通信获取整个集群网段信息并进行子网的二次分配,使得每个minion节点都能拥有一个唯一的子网网段,进而确保在整个k8s集群中运行的docker容器都能获得唯一的ip地址。

标签:网段,kubernetes,minion,集群,etcd,docker,Flannel,flannel
来源: https://blog.51cto.com/15127564/2668387

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

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

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

ICode9版权所有