以下是我在 Kubernetes v1.7.3 中设置 flannel 的步骤。
安装法兰绒
kubectl create -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel-rbac.yml
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
您将看到 flannel pod 已创建,但它进入“CrashLoopBackOff”状态并永远重启。
在 Kubeadm 安装 flannel 后,子网信息将记录在文件中/run/flannel/subnet.env
。
cat /run/flannel/subnet.env
FLANNEL_NETWORK=10.244.0.0/16
FLANNEL_SUBNET=10.244.0.1/24
FLANNEL_MTU=1450
FLANNEL_IPMASQ=true
为 docker 设置这些环境变量
mkdir -p /usr/lib/systemd/system/docker.service.d
sudo cat << EOF > /usr/lib/systemd/system/docker.service.d/flannel.conf
[Service]
EnvironmentFile=-/run/flannel/docker
EOF
sudo cat << EOF > /run/flannel/docker
DOCKER_OPT_BIP="--bip=10.244.0.1/24"
DOCKER_OPT_IPMASQ="--ip-masq=false"
DOCKER_OPT_MTU="--mtu=1450"
DOCKER_NETWORK_OPTIONS=" --bip=10.244.0.1/24 --ip-masq=false --mtu=1450"
注意:对于 docker,请务必将 ip-masq 设置为 false,否则 kube-dns 将无法正常工作。
重新加载服务配置,然后更改将生效。
sudo systemctl daemon-reload`
瞧,在那之后一切正常。