一、kubeadm搭建
1、其他master加入后无法使用kubectl查看nodes。
现象:
Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of “crypto/rsa: verification error” while trying to verify candidate authority certificate “kubernetes”)
原因:
之前创建过k8s集群,有残留目录($HOME/.kube),导致秘钥认证失败。
解决:
删除 $HOME/.kube 重新执行提示的命令,如下:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
2、安装calico网络插件后,有一个pod始终处于runing但not ready
现象:
一个calico pod始终无法处于ready状态,删除该pod后自动生成的pod同样无法ready。
原因:
calico.yaml没有指定网卡,导致该calico pod 的 router id 错误(不是所处node的ip),使用如下命令进入该pod查看。(pod名称使用自己对应的名称)
kubectl exec -ti calico-node-55j59 -n kube-system -- bash
cat /etc/calico/confd/config/bird.cfg
解决:
先用ifconfig查看自己宿主机的网卡名称,我的是ens192。
打开calico.yaml,查找“Enable IPIP”,在上方添加下图红框的内容后保存退出,我这里用的是通配符。(注意对齐与缩进)
重新应用calico.yaml
rm -rf /var/lib/cni
kubectl apply -f calico.yaml
# 该问题解决方法转自calico-node显示running但not ready
3、k8s集群搭建完成测试网络解析时无法解析
现象:
pod运行正常,解析时出错:
kubectl run busybox --image=busybox --restart=Never -it -- sh
/ # ping baidu.com
PING baidu.com (220.181.38.251): 56 data bytes
64 bytes from 220.181.38.251: seq=0 ttl=49 time=23.818 ms
64 bytes from 220.181.38.251: seq=1 ttl=49 time=23.705 ms
^C
--- baidu.com ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 23.705/23.761/23.818 ms
/ # nslookup kubernetes.default.svc.cluster.local
Server: 10.96.0.10
Address: 10.96.0.10:53
Name: kubernetes.default.svc.cluster.local
Address: 10.96.0.1
*** Can't find kubernetes.default.svc.cluster.local: No answer
原因:
busybox镜像有问题
解决:
使用1.28版的镜像测试正常
kubectl run busybox --image=busybox:1.28 --restart=Never --rm -it -- sh