前置条件:
已安装Docker
配置hosts:
192.168.6.162 master
192.168.6.162 etcd
192.168.6.157 node
- 关闭防火墙,安装etcd(仅master)
- 编辑yum安装的etcd配置文件:
cp /etc/etcd/etcd.conf /etc/etcd/etcd.conf.bak
vi /etc/etcd/etcd.conf
-
修改下面几个配置
ETCD_NAME=master
#节点名称
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
#数据存放位置
ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379,http://0.0.0.0:4001
#监听客户端地址
ETCD_ADVERTISE_CLIENT_URLS=http://etcd:2379,http://etcd:4001
#通知客户端地址 -
启动etcd并验证状态
systemctl start etcd
- 安装Flannel(两节点相同)
yum install flannel -y
- 配置Flannel(两节点配置相同)
配置etcd中关于flannel的key(这个只在安装了etcd的master上操作)
Flannel使用Etcd进行配置,来保证多个Flannel实例之间的配置一致性,所以需要在etcd上进行如下配置(’/atomic.io/network/config’这个key与上文/etc/sysconfig/flannel中的配置项FLANNEL_ETCD_PREFIX是相对应的,错误的话启动就会出错)
温馨提示:上面flannel设置的ip网段可以任意设定,随便设定一个网段都可以。容器的ip就是根据这个网段进行自动分配的,ip分配后,容器一般是可以对外联网的(网桥模式,只要宿主机能上网就可以)
- 分别启动Flannel
测试:(主意重启Docker)
node:
Master:
在两个宿主机的容器内,互相ping对方容器的ip,是可以ping通的,也可以直接连接外网
这里面的“–bip= 192.168.53.1/24”这个参数,它限制了所在节点容器获得的IP范围。这个IP范围是由Flannel自动分配的,由Flannel通过保存在Etcd服务中的记录确保它们不会重复。