kubelet集群网络配置flannel(覆盖网络)
kubernetes本身并不会对跨主机容器的网络进行设置,这需要额外的工具来实现。一些常用的开源工具主要包括flanne、OpenvSwitch、Weave、Calico等,这里面最常用的是flannel、OpenvSwitch和直接路由这3种配置。
1)安装etcd
由于flannel使用etcd作为数据库,所以需要预先安装etcd。可以参照上一篇。
2)安装flannel
需要在每台node上都安装flannel。flannel的下载地址。
将下载的二进制包进行解压,然后将flanneld和mk-docker-opts.sh复制到/usr/bin目录下,即可完成简单安装。
3)配置flannel
此处以systemd系统为例对flanneld服务进行配置。
cat /usr/lib/systemd/system/flanneld.service
[Unit]
Description=flanneld overlay address etcd agent
Documentation=https://github.com/coreos/flannel
After=network.service
Before=docker.service
[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/flanneld
ExecStart=/usr/bin/flanneld --etcd-endpoints=${FLANNEL_ETCD} $FLANNEL_OPTIONS
[Install]
RequiredBy=docker.service
WantedBy=multi-user.target
编辑配置文件/etc/sysconfig/flanneld,并且设置etcd的地址。
cat /etc/sysconfig/flanneld
#flanneld configuration options
#etcd url location. Point this to the server where etcd runs
FLANNEL_ETCD="http://192.168.142.161:2379,http://192.168.142.162:2379,http://192.168.142.163:2379"
# etcd config key. this is the configuration key that flannel queries
# for address range assignment
FLANNEL_ETCD_KEY="/coreos.com/network"
在启动flanneld服务之前,需要在etcd中添加一条网络配置记录,这个配置将用于flanneld分配给每个docker的虚拟IP地址段。
etcdctl set /coreos.com/network/config '{ "Network": "10.1.0.0/16" }
4)由于flanneld将覆盖docker0网桥,所以如果docker服务已经启动,则停止docker服务。
5)启动flanneld服务
systemctl restart flanneld
6)设置docker0网桥的ip地址
mk-docker-opts.sh -i
source /run/flannel/subnet.env
ifconfig docker0 ${FLANNEL_SUBNET}
完成后确认网络接口docker0的IP地址属于flannel0的子网
[root@kubernets-node2 ~]# ip add sh
4: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 02:42:22:3b:9f:2e brd ff:ff:ff:ff:ff:ff
inet 10.1.60.1/24 brd 10.1.60.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:22ff:fe3b:9f2e/64 scope link
valid_lft forever preferred_lft forever
6: vethf488ee1@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP
link/ether 9a:38:bd:bb:88:c7 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fe80::9838:bdff:febb:88c7/64 scope link
7)重新启动docker服务
systemctl restart docker
kubelet集群网络配置flannel(覆盖网络)的更多相关文章
- Kubernetes: 集群网络配置 - flannel
参考: [ Kubernetes 权威指南 ] Kubernetes 集群搭建可以参考 [ Kubernetes : 多节点 k8s 集群实践 ] 在多个 Node 组成的 Kubernetes 集群 ...
- Hadoop配置第1节-集群网络配置
Hadoop-集群网络配置 总体目标:完成zookeeper+Hadoop+Hbase 整合平台搭建 进度:1:集群网络属性配置2:集群免密码登陆配置3:JDK的安装4:Zookeeper的安装5 ...
- 039.集群网络-Pod和SVC网络实践
一 Pod和SVC网络 1.1 实践准备及原理 Docker实现了不同的网络模式,Kubernetes也以一种不同的方式来解决这些网络模式的挑战.本完整实验深入剖析Kubernetes在网络层是如何实 ...
- kubernetes集群网络配置方案
1. 直接路由 在每个节点上添加其他节点的静态路由,就可以将不同物理机的docker0网桥互联互通. 我的两个节点的IP分别为:172.16.252.218和172.16.252.209. 两个doc ...
- K8s 从懵圈到熟练 – 集群网络详解
作者 | 声东 阿里云售后技术专家 导读:阿里云 K8S 集群网络目前有两种方案:一种是 flannel 方案:另外一种是基于 calico 和弹性网卡 eni 的 terway 方案.Terway ...
- Kubernetes 从懵圈到熟练 – 集群网络详解(转)
阿里云K8S集群网络目前有两种方案,一种是flannel方案,另外一种是基于calico和弹性网卡eni的terway方案.Terway和flannel类似,不同的地方在于,terway支持Pod弹性 ...
- 四、创建覆盖网络--Flannel
Flannel是 CoreOS 团队针对 Kubernetes 设计的一个覆盖网络(Overlay Network)工具,其目的在于帮助每一个使用 Kuberentes 的 CoreOS 主机拥有 ...
- 042.集群网络-flannel及calico
一 Flannel组件 1.1 flannel介绍 Kubernetes的网络模型假定了所有Pod都在一个可以直接连通的扁平网络空间中.若需要实现这个网络假设,需要实现不同节点上的Docker容器之间 ...
- 036.集群网络-K8S网络模型及Linux基础网络
一 Kubernetes网络模型概述 1.1 Kubernetes网络模型 Kubernetes网络模型设计的一个基础原则是:每个Pod都拥有一个独立的IP地址,并假定所有Pod都在一个可以直接连通的 ...
随机推荐
- java根据图片创建日期,或最后修改日期重命名
import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import jav ...
- gson的特殊用法
1.gson包在处理 字符串转 Map 或者 List 的方法. List memberList = gson.fromJson(str,new TypeToken<List>() {}. ...
- tp5自定义分页参数
代码示例: $data = db('activity') -> where($condition1)-> order('startline desc') -> paginate(2, ...
- 学以致用三十二-----python中函数的括号使用
一直以来对python中函数括号的使用,有点分不清楚,到底什么时候用括号,什么时候不用括号,造成了很大看困惑. 今天来总结下. class aaa(): y = 'you' def __init__( ...
- 如何理解Unity组件化开发模式
Unity的开发模式核心:节点和组件,组件可以加载到任何节点上,每个组件都有 gameobject 属性,可以通过这个属性获取到该节点,即游戏物体. 也就是说游戏物体由节点和组件构成,每个组件表示物体 ...
- Go学习之旅
备忘这个 官方文档 https://go-zh.org/doc/ Go指南 https://tour.go-zh.org/welcome/1 Go语言圣经 https://yar999.gitbook ...
- 《python语言程序设计》_第5章_循环
#5.1_引言 程序1: 结果: 程序2: 结果: sum is 45 ##注意整个循环语句都要内缩进循环内部 ##ctrl+c中止一个无限循环运行 程序清单5-1: 结果: #5.2.1_实例研究: ...
- (一)Javascript 面向对象编程:封装
Javascript 面向对象编程:封装 作者:阮一峰 Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程(OOP ...
- docker容器下mysql更改WordPress的site address和home(URL)------局域网
先简单介绍下,用docker安装的WordPress,mysql是在docker容器中的,并未在Ubuntu(我把WordPress是安装Ubuntu系统上),即WordPress和Ubuntu是独立 ...
- GET和POST两种请求方法的区别(RFC翻译)
GET和POST方法是HTTP协议规定的.查了HTTP1.1的RFC,原文的专业性极强.下面是白话翻译,欢迎补充和指错. GET方法就是检索(以实体的形式)由请求uri所指定的资源.如果请求的uri指 ...