[Kubernetes] Kubeadm Troubleshooting
Troubleshooting for kubeadm.
T1 前置准备问题
Run kubeadm config images pull
1 | I1216 10:31:32.821965 25588 version.go:251] remote version is much newer: v1.17.0; falling back to: stable-1.16 |
依照顺序:
kubeadm config print init-defaults > init.default.yaml
得到默认的初始配置,对生成的文件进行编辑,可以按需生成合适的配置。如:- 将
advertiseAddress: 1.2.3.4
修改为本机地址 - 如果使用国内的docker镜像源,需要将
imageRepository: k8s.gcr.io
修改为对应的镜像源地址 - 定制镜像仓库地址:
imageRepository: docker.io/dustise
- kubernetes版本:
kubernetesVersion: v1.17.0
- Pod地址范围:
1
2networking:
podSubnet: "192.168.0.0/16"- 将
修改docker版本
Disable swap
sudo swapoff -a
#关闭交换分区sudo free -m
# 查看交换分区状态sudo chmod +w /etc/fstab
# 修改fstab文件的权限vi /etc/fstab
# 将swap行注释掉,注意先备份,此步是为了永久关闭swap分区
T2 Dashboard无法访问
碰到页面显示
1 | { |
那么参考这个issue,在之前用来生成dashboard的recommend.yaml
中加入
1 |
|
通过命令重新启动dashboard:kubectl replace --force -f recommended.yaml
T3 配置网络问题
1.使用calico未发现正常网卡
错误信息:
1 | :Readiness probe failed: caliconode is not ready: BIRD is not ready: BGP not established with 10.117.150.23 |
解决方法:
编辑calicol.yaml,添加
1 | - name: IP_AUTODETECTION_METHOD |
2.使用其他网络配置的残留
由于此前操作有错误,需移除之前的网络配置,重新安装。
但是此前的网络配置未移除干净,会造成一些问题:
ip link
,例如此前使用过weave
对应的网卡weave
、calico
对应的网卡tunl0
,需要使用ip link delete {name}
来进行移除。更为有效的方法(针对weave):
1
2sudo curl -L git.io/weave -o /usr/local/bin/weave
sudo chmod a+x /usr/local/bin/weavethen
1
weave reset
CNI的配置文件在使用
kubeadm reset
后并不会被删除:rm -rf /etc/cni/net.d
T4 顽固的swap (UPDATE 2020/03/31)
不知道出于什么原因,每次实验室服务器重启之后,交换分区都会被重新启用(/etc/fstab
甚至都是disable的状态)
暂时的解决方法是,每次服务器不得不需要重启时,先停止所有容器(不太可能),重启后swapoff -a
+systemctl restart kubelet
,两套连招,暂且将就用用。