K8s部署集群踩坑集锦
程序员文章站
2024-03-11 17:33:31
...
1.kubeadm init时报错:Initial timeout of 40s passed.
在master节点执行以下命令初始化时,总是报出下面这个错误:
kubeadm init \
--apiserver-advertise-address=34.80.118.209 \
--image-repository registry.aliyuncs.com/google_containers
--kubernetes-version v1.21.1 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=10.244.0.0/16
其中ip为master的外网ip,版本号为kubelet版本号。
报错:
解决方法:
我找到了这篇博客:kubeadm init初始化k8s集群时报错,[kubelet-check] Initial timeout of 40s passed.,在他的博客的错误一中也出现了这种问题。解决方案是只要去掉下面这两行就可以了:
--apiserver-advertise-address=34.80.118.209 \
--image-repository registry.aliyuncs.com/google_containers
按理说本机的外网ip字段其实无需指定,因为我就在本机上配置master节点。至于使用的镜像仓库源我没有测试,因为我本身使用的谷歌云连接外网是无障碍的。
然后重置一下,重新init,解决。具体原因未知。
# 每次执行init前先重置一下kubeadm,相当于对失败的初始化做一次清理
kubeadm reset
kubeadm init \
--kubernetes-version v1.21.1 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=10.244.0.0/16
2.[WARNING IsDockerSystemdCheck]
初始化中报错如下:
这是由于docker的Cgroup Driver和kubelet的Cgroup driver不一致导致的。此处选择修改docker的和kubelet一致,将所有节点的docker的启动方式从cgroupfs统一改为和kubelet一致的systemd即可:
(1)查看一下:
docker info |grep Cgroup
这里显示的是cgroup。
(2)打开docker配置文件:
vim /usr/lib/systemd/system/docker.service
(3)红框位置改一下,在-H前面插入下面的语句:
ExecStart=/usr/bin/dockerd --exec-opt native.cgroupdriver=systemd
(4)然后重启docker,再次查看:
systemctl daemon-reload
# 再次查看
docker info | grep Cgroup
如下,解决。
3.[ERROR FileAvailable–etc-kubernetes-manifests-kub]、[ERROR Port-10250]: Port 10250 is in use
出现这种情况,是端口被占用:
重置一下,然后重新执行即可:
# 每次执行init前先重置一下kubeadm,相当于对失败的初始化做一次清理
kubeadm reset
上一篇: Debezium MySQL源连接器