欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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版本号。

报错:
K8s部署集群踩坑集锦
解决方法:

我找到了这篇博客: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]

初始化中报错如下:
K8s部署集群踩坑集锦
这是由于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前面插入下面的语句:
K8s部署集群踩坑集锦

ExecStart=/usr/bin/dockerd --exec-opt native.cgroupdriver=systemd

(4)然后重启docker,再次查看:

systemctl daemon-reload
# 再次查看
docker info | grep Cgroup

如下,解决。
K8s部署集群踩坑集锦

3.[ERROR FileAvailable–etc-kubernetes-manifests-kub]、[ERROR Port-10250]: Port 10250 is in use

出现这种情况,是端口被占用:
K8s部署集群踩坑集锦重置一下,然后重新执行即可:

# 每次执行init前先重置一下kubeadm,相当于对失败的初始化做一次清理
kubeadm reset
相关标签: K8s学习笔记