栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

kubeadm init初始化报错

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

kubeadm init初始化报错

问题一:
执行初始化命令:
# kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs | tee kubeadm-init.log

问题很low,直接甩结论了
从报错信息中可以看到apiserver、controller-manager。。。版本是错误的

需要重新下载正确版本的镜像

# 获取要拉取的镜像信息,images.txt是临时文件
kubeadm config images list > images.txt
###注意:检查images.txt文件中的镜像版本是否与自己环境中的版本一致,不一致需要手动修改下
# 替换成registry.aliyuncs.com/google_containers的仓库,该仓库国内可用,和k8s.gcr.io的更新时间只差一两天
sed -i 's@k8s.gcr.io@registry.aliyuncs.com/google_containers@g' images.txt
#拉取各镜像
cat images.txt | while read line
do
    docker pull $line
done
# 修改镜像tag为k8s.gcr.io仓库,并删除registry.aliyuncs.com/google_containers的tag
sed -i 's@registry.aliyuncs.com/google_containers/@@g' images.txt
cat images.txt | while read line
do
    docker tag registry.aliyuncs.com/google_containers/$line k8s.gcr.io/$line
    docker rmi -f registry.aliyuncs.com/google_containers/$line
done
# 操作完后显示本地docker镜像
docker images
# 删除临时文件
rm -f images.txt

最后重新初始化就好啦!!!

问题二: 1、报错信息:
执行初始化命令:
# kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs | tee kubeadm-init.log
[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s
[kubelet-check] Initial timeout of 40s passed.
  ror execution phase wait-control-plane: couldn't initialize a Kubernetes cluster

Unfortunately, an error has occurred:
	timed out waiting for the condition

This error is likely caused by:
	- The kubelet is not running
	- The kubelet is unhealthy due to a misconfiguration of the node in some way (required cgroups disabled)

If you are on a systemd-powered system, you can try to troubleshoot the error with the following commands:
	- 'systemctl status kubelet'
	- 'journalctl -xeu kubelet'

Additionally, a control plane component may have crashed or exited when started by the container runtime.
To troubleshoot, list all containers using your preferred container runtimes CLI, e.g. docker.
Here is one example how you may list all Kubernetes containers running in docker:
	- 'docker ps -a | grep kube | grep -v pause'
	Once you have found the failing container, you can inspect its logs with:
	- 'docker logs CONTAINERID'
2、排查过程:(其中还百度了许多方法,but木有用)
1. 检查docker、kubelet服务运行状况(确认正常)
2. 执行# journalctl -u kubelet 发现报错:
6月 08 16:26:42 master kubelet[16048]: E0608 16:26:42.454465   16048 kubelet.go:2248] node "master" not found
6月 08 16:26:42 master kubelet[16048]: E0608 16:26:42.556547   16048 kubelet.go:2248] node "master" not found
6月 08 16:26:42 master kubelet[16048]: E0608 16:26:42.658097   16048 kubelet.go:2248] node "master" not found
6月 08 16:26:42 master kubelet[16048]: E0608 16:26:42.758757   16048 reflector.go:125] k8s.io/client-go/informers/factory.go:133: Failed to list *v1beta1.CSI
6月 08 16:26:42 master kubelet[16048]: E0608 16:26:42.758830   16048 reflector.go:125] k8s.io/kubernetes/pkg/kubelet/kubelet.go:453: Failed to list *v1.Node:
6月 08 16:26:42 master kubelet[16048]: E0608 16:26:42.758873   16048 reflector.go:125] k8s.io/kubernetes/pkg/kubelet/config/apiserver.go:47: Failed to list *
6月 08 16:26:42 master kubelet[16048]: E0608 16:26:42.758907   16048 reflector.go:125] k8s.io/kubernetes/pkg/kubelet/kubelet.go:444: Failed to list *v1.Servi
6月 08 16:26:42 master kubelet[16048]: E0608 16:26:42.758940   16048 reflector.go:125] k8s.io/client-go/informers/factory.go:133: Failed to list *v1beta1.Run
6月 08 16:26:42 master kubelet[16048]: E0608 16:26:42.758967   16048 kubelet_node_status.go:94] Unable to register node "master" with API server: Post https:
6月 08 16:26:42 master kubelet[16048]: E0608 16:26:42.759005   16048 controller.go:115] failed to ensure node lease exists, will retry in 7s, error: Get http
6月 08 16:26:42 master kubelet[16048]: E0608 16:26:42.759084   16048 

看到node “master” not found就差不多明白了,果然检查了一下,hosts解析文件有错误。。。。

3、解决办法:
1. 修改/etc/hosts文件中的主机名 ip
10.0.0.201 master
10.0.0.202 node01
10.0.0.203 node02
2. 清除之前kubeadm初始化的残留数据
kubeadm reset
3. 重新执行初始化命令
4. OK!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/974700.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号