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(覆盖网络)的更多相关文章

  1. Kubernetes: 集群网络配置 - flannel

    参考: [ Kubernetes 权威指南 ] Kubernetes 集群搭建可以参考 [ Kubernetes : 多节点 k8s 集群实践 ] 在多个 Node 组成的 Kubernetes 集群 ...

  2. Hadoop配置第1节-集群网络配置

    Hadoop-集群网络配置 总体目标:完成zookeeper+Hadoop+Hbase 整合平台搭建   进度:1:集群网络属性配置2:集群免密码登陆配置3:JDK的安装4:Zookeeper的安装5 ...

  3. 039.集群网络-Pod和SVC网络实践

    一 Pod和SVC网络 1.1 实践准备及原理 Docker实现了不同的网络模式,Kubernetes也以一种不同的方式来解决这些网络模式的挑战.本完整实验深入剖析Kubernetes在网络层是如何实 ...

  4. kubernetes集群网络配置方案

    1. 直接路由 在每个节点上添加其他节点的静态路由,就可以将不同物理机的docker0网桥互联互通. 我的两个节点的IP分别为:172.16.252.218和172.16.252.209. 两个doc ...

  5. K8s 从懵圈到熟练 – 集群网络详解

    作者 | 声东 阿里云售后技术专家 导读:阿里云 K8S 集群网络目前有两种方案:一种是 flannel 方案:另外一种是基于 calico 和弹性网卡 eni 的 terway 方案.Terway ...

  6. Kubernetes 从懵圈到熟练 – 集群网络详解(转)

    阿里云K8S集群网络目前有两种方案,一种是flannel方案,另外一种是基于calico和弹性网卡eni的terway方案.Terway和flannel类似,不同的地方在于,terway支持Pod弹性 ...

  7. 四、创建覆盖网络--Flannel

      Flannel是 CoreOS 团队针对 Kubernetes 设计的一个覆盖网络(Overlay Network)工具,其目的在于帮助每一个使用 Kuberentes 的 CoreOS 主机拥有 ...

  8. 042.集群网络-flannel及calico

    一 Flannel组件 1.1 flannel介绍 Kubernetes的网络模型假定了所有Pod都在一个可以直接连通的扁平网络空间中.若需要实现这个网络假设,需要实现不同节点上的Docker容器之间 ...

  9. 036.集群网络-K8S网络模型及Linux基础网络

    一 Kubernetes网络模型概述 1.1 Kubernetes网络模型 Kubernetes网络模型设计的一个基础原则是:每个Pod都拥有一个独立的IP地址,并假定所有Pod都在一个可以直接连通的 ...

随机推荐

  1. Maven捆绑TestNG实现测试自动化执行、部署和调度

    一. 需求介绍 自动化测试,尤其是接口测试时,要写大量的测试用例,这些测试用例我们当然首选使用TesteNG编写,用例数量大,还涉及各种依赖包之类的问题,因此用Maven管理也是最方便最易实现的. 面 ...

  2. JAVA常用集合

    List: ArrayList: 基于动态数组的有序集合.优点:可以根据索引index下标访问List中的元素,访问速度快:缺点是访问和修改中间位置的元素时慢(数组尾部插入元素以外). LinkedL ...

  3. Problem creating zip: Execution exce ption (and the archive is probably corrupt but I could not delete it): Java heap space -> [Help 1]

    今天mvn编译的时候报错:  [ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.5.5:s ...

  4. vuejs 使用vue-cli引入bootstrap

    前言:对于刚刚进入vuejs的队伍中的小白来讲,很多都是模糊的,js操作dom节点的思想萦绕,还不能自由切换在二者之间. 解决之道: 想要在vue中引入bootstrap,引入的时候需要按照如下的步骤 ...

  5. easyui时的时间格式yyyy-MM-dd与yyyy-MM-ddd HH:mm:ss

    easyui日期的转换,日期汉化导入:<script type="text/javascript" src="../easyui/locale/easyui-lan ...

  6. 鸟哥私房菜--进程SELinux

    程序--binary file 进程(PID)--进行中的程序 服务--常驻内存的进程(crond atd 网络...) 父进程 fork()and exec()子进程(PID PPID) ps -l ...

  7. Python之配置日志的几种方式(logging模块)

    原文:https://blog.csdn.net/WZ18810463869/article/details/81147167 作为开发者,我们可以通过以下3种方式来配置logging: 1)使用Py ...

  8. numpy、pandas

    numpy: 仨属性:ndim-维度个数:shape-维度大小:dtype-数据类型. numpy和pandas各def的axis缺省为0,作用于列,除DataFrame的.sort_index()和 ...

  9. 自定义导航栏 tabBarController 笔记

    #import "LeeNavigationController.h" @interface LeeNavigationController () @end @implementa ...

  10. visual studio 2015 Opencv 3.4.0配置

    因为想做AR方面,需要了解计算机视觉知识,决定从opencv开始入门,在网上买了本毛星云的<Opencv3编程入门>开始自学. 一.opencv 3.4.0下载安装 在官网http://o ...