woyoudn 发表于 2018-1-6 08:59:47

k8s基础-flannel二进制安装

配置flannel
  其实flannel也是和etcd一样,不用安装的,直接从官方下载二进制执行文件就可以了,当然,你也可以自己编译
  ,首先配置好flannel,再配置docker,使其使用flannel网络。
  编辑/usr/lib/systemd/system/flanneld.service(主要修改成你的flanneld程序路径):
  

  
Description=flannel
  

  
ExecStart=/opt/flannel/flanneld \
  
-etcd-endpoints=http://172.16.164.5:4001      #etcd地址
  

  
WantedBy=multi-user.target
  

  
systemctl start flanneld
  

  正常情况下,使用ip a s flannel0可以查看到flannel的桥接网卡已经起来了。

配置docker
  首先生成Docker参数,在flannel程序包中有脚本,执行/opt/flannel/mk-docker-opts.sh -c,回生成docker的启动参数,默认保存到/run/docker_opts.env,也可以使用-i参数,生成的样式不一样,正常来说,把这些参数加到Docker的启动参数中,重启Docker就可以了,但是方便起见,我希望这个脚本加入到Docker中,每次重启Docker都能重新生成这个配置,避免网络变化导致参数不对,所以我修改了Docekr的启动配置:/usr/lib/systemd/system/docker.service:(如果你不是使用引入文件的方式,就把配置项加到docker启动参数里)
  

  
Description=Docker Application Container Engine
  
Documentation=http://docs.docker.com
  
After=network.target
  
After=flanneld.service
  
Requires=flanneld.service
  
Wants=docker-storage-setup.service
  

  

  
Type=notify
  
NotifyAccess=all
  
EnvironmentFile=/run/docker_opts.env    #+ 引入环境变量
  
EnvironmentFile=-/etc/sysconfig/docker
  
EnvironmentFile=-/etc/sysconfig/docker-storage
  
EnvironmentFile=-/etc/sysconfig/docker-network
  
Environment=GOTRACEBACK=crash
  
ExecStartPre=/opt/flannel/mk-docker-opts.sh -c #+ 执行脚本,备下次使用
  
ExecStart=/bin/sh -c '/usr/bin/docker daemon $OPTIONS \
  $MK_DOCKER_OPTS \   #+ 我脚本中的变量名称我改成了这个,并在脚本中加入清理这个变量,否则每次生成的配置都会叠在一起重复
  $DOCKER_OPTS \
  $DOCKER_STORAGE_OPTIONS \
  $DOCKER_NETWORK_OPTIONS \
  $ADD_REGISTRY \
  $BLOCK_REGISTRY \
  $INSECURE_REGISTRY \
  2>&1 | /usr/bin/forward-journald -tag docker'
  
LimitNOFILE=1048576
  
LimitNPROC=1048576
  
LimitCORE=infinity
  
MountFlags=slave
  
TimeoutStartSec=0
  
Restart=on-failure
  
StandardOutput=null
  
StandardError=null
  

  

  
WantedBy=multi-user.target
  

  之后重启docker,正常的话,使用ip a可以看到docker0网卡和flannel0网卡是在同一个网段。多个节点配置好后,不同主机上运行容器,容器之间应该也是可以直接访问。
页: [1]
查看完整版本: k8s基础-flannel二进制安装