kubelet集群网络配置flannel(覆盖网络)

kubernetes自己并不会对跨主机容器的网络进行设置,这须要额外的工具来实现。一些经常使用的开源工具主要包括flanne、OpenvSwitch、Weave、Calico等,这里面最经常使用的是flannel、OpenvSwitch和直接路由这3种配置。node

1)安装etcdgit

因为flannel使用etcd做为数据库,因此须要预先安装etcd。能够参照上一篇。github

2)安装flanneldocker

须要在每台node上都安装flannel。flannel的下载地址数据库

将下载的二进制包进行解压,而后将flanneld和mk-docker-opts.sh复制到/usr/bin目录下,便可完成简单安装。bash

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的地址。ui

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地址段。this

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
相关文章
相关标签/搜索