使用kubeadm部署kubernetes过程中的一些烂坑
- 执行kubeadm init命令时一定要使用–pod-network-cidr参数指定pod网络的子网,如果没有指定pod网络子网,在之后部署flannel的时候flannel的pod会无限重启。
- 如果想要偷懒直接使用
|
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml |
命令部署flannel的话,则在上一步kubeadm init时所指定的pod网络子网参数必须是–pod-network-cidr=10.244.0.0/16,例如:
|
kubeadm init --apiserver-advertise-address=your_ip_addr --pod-network-cidr=10.244.0.0/16 |
这是由于在https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml这个文件中对net-conf.json做出了如下指定:
|
net-conf.json: | { "Network": "10.244.0.0/16", "Backend": { "Type": "vxlan" } } |
如果想要使用自己的pod网络子网,而非10.244.0.0/16,则必须修改用于部署flannel的yml文件中上述部分的子网cidr表述。
- flannel默认会使用主机的默认路由的网络接口(interface)进行通信,如果kubernetes集群为跨地域、跨VPC集群,使用了隧道或虚拟网络(比如zerotier),则必须在flanneld的启动参数中对使用的网络接口加以指定:
|
containers: - name: kube-flannel image: quay.io/coreos/flannel:v0.15.0-amd64 command: - /opt/bin/flanneld args: - --ip-masq - --kube-subnet-mgr - --iface=your_iface - --iface=your_iface2 |
注意此处可以指定使用多个网络接口。
Comments