我使用docker bootstrap Unix sock来部署flannel network( source ),电脑重启后网络恢复到配置前的状态后丢失。
操作系统 ubuntu 14.04
码头工人版本 1.11.2
一步步
1.设置Docker引导sudo sh -c 'docker daemon -H unix:///var/run/docker-bootstrap.sock -p /var/run/docker-bootstrap.pid --iptables=false --ip-masq=false --bridge=none --graph=/var/lib/docker-bootstrap 2> /var/log/docker-bootstrap.log 1> /dev/null &'
它警告说“您应该在 SysV init、upstart 或 systemd 之类的东西下运行引导 Docker 实例,以便在重新启动和失败时重新启动它。”
2.启动etcd供flannel和API server使用
sudo docker -H unix:///var/run/docker-bootstrap.sock run -d \
--net=host \
gcr.io/google_containers/etcd-amd64:${ETCD_VERSION} \
/usr/local/bin/etcd \
--listen-client-urls=http://127.0.0.1:4001,http://${MASTER_IP}:4001 \
--advertise-client-urls=http://${MASTER_IP}:4001 \
--data-dir=/var/etcd/data
sudo docker -H unix:///var/run/docker-bootstrap.sock run \
--net=host \
gcr.io/google_containers/etcd-amd64:${ETCD_VERSION} \
etcdctl set /coreos.com/network/config '{ "Network": "10.1.0.0/16" }'
如果存在unix sock,我认为它会重新启动,如果需要配置默认启动项?
3.设置 Docker 用于网络的 Flannel 桥接器
##关闭 Docker
sudo /etc/init.d/docker stop
##跑法兰绒
sudo docker -H unix:///var/run/docker-bootstrap.sock run -d \
--net=host \
--privileged \
-v /dev/net:/dev/net \
quay.io/coreos/flannel:${FLANNEL_VERSION} \
/opt/bin/flanneld \
--ip-masq=${FLANNEL_IPMASQ} \
--iface=${FLANNEL_IFACE}
sudo docker -H unix:///var/run/docker-bootstrap.sock exec 'really-long-hash-from-above-here' cat /run/flannel/subnet.env
##编辑docker配置
--bip=${FLANNEL_SUBNET} --mtu=${FLANNEL_MTU}
##删除现有的Docker桥
sudo /sbin/ifconfig docker0 down
sudo brctl delbr docker0
##重启Docker
sudo /etc/init.d/docker start
我对第 2 步的看法相同
4.启动Kubernetes Master
sudo docker run \
--volume=/:/rootfs:ro \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:rw \
--volume=/var/lib/kubelet/:/var/lib/kubelet:rw \
--volume=/var/run:/var/run:rw \
--net=host \
--privileged=true \
--pid=host \
-d \
gcr.io/google_containers/hyperkube-amd64:v${K8S_VERSION} \
/hyperkube kubelet \
--allow-privileged=true \
--api-servers=http://localhost:8080 \
--v=2 \
--address=0.0.0.0 \
--enable-server \
--hostname-override=127.0.0.1 \
--config=/etc/kubernetes/manifests-multi \
--containerized \
--cluster-dns=10.0.0.10 \
--cluster-domain=cluster.local
错误无关紧要