kubeadm init初始化k8s集群时报错,[kubelet-check] Initial timeout of 40s passed.

在使用kubeadm init初始化k8s集群时遇到三个主要错误:版本不匹配、镜像拉取失败和等待控制平面超时。解决方法包括指定k8s组件版本、配置阿里云镜像源、修改docker服务文件以及清理初始化失败的环境。
摘要由CSDN通过智能技术生成

在使用kubeadm init初始化k8s集群中的master主节点时,总是出错。这个地方卡了我很长时间,遇到了好几个不一样的错误,有的问题在网上也没有找到什么有效的解决方案,所以特此记录一下。以下错误均是在使用kubeadm init语句初始化k8s集群过程中出现的问题。


第一次初始化集群时,我的初始化master节点kubeadm init语句为:

kubeadm init --kubernetes-version=v1.10.0 \
--apiserver-advertise-address=50.50.50.50 \
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16

错误一

this version of kubeadm only supports deploying clusters with the control plane version >= 1.17.0. Current version: v1.10.0
错误原因:因为刚开始安装kubelet kubeadm kubectl的时候,我使用的命令是yum install -y kubelet kubeadm kubectl,这个命令确实能安装kubernetes的这3个组件。但是这个安装下载命令有一个问题,就是没有指定kubelet kubeadm kubectl的版本,所以该命令一般会默认下载最新高版本的组件。与之类似的还有docker的安装命令yum install docker-ce -y,这条命令会默认安装最新版的docker。
因为有的时候我们要考虑各组件之间的版本兼容性,比如安装k8s的这3个组件的时候就要考虑k8s组件的版本是否与docker,Centos的版本相匹配。
出现上述错误的原因是我的kubeadm是1.17版本的,而本地的docker仓库中的相关镜像是1.10版本的,所以安装的时候安装命令中的kubernetes-version=v1.10.0会导致错误,镜像版本与kubeadm组件要求的版本不匹配,故报错。

这个时候,大家可能会有疑问,kubernetes-version=v1.10.0不放在在kubeadm init初始化集群命令中可不可以?首先,我先这样说,可以,但是可以的前提是你要科学上网(因为本地docker仓库中没有镜像的话就会从google的官网下载)或者说你的本地docker仓库中刚好有符合kubeadm组件要求的镜像。但是,我的建议是放上这一句,那为什么呢,我给大家举个例子。
怎样查看kubeadm组件要求的镜像的版本呢?(说明:下图是我成功部署的k8s集群中的信息,我所使用的kubeadm的版本是kubeadm-1.14.2)使用如下的命令,可以看到kubeadm-1.14.2组件所要求的镜像。

kubeadm config images list

在这里插入图片描述
我没有科学上网,所以我借助阿里的镜像源下载了相关的镜像,使用docker images查看如下:
在这里插入图片描述
因为我当时没有使用kubeadm config images list查看kubeadm-1.14.2所要求的镜像,所以我觉得使用registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.14.2等1.14.2的版本肯定可以,因为这和已安装的kubeadm版本一致。然后我是用了kubeadm init --kubernetes-version=v1.14.2 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap执行k8s集群的初始化,假如我不指定kubernetes-version=v1.14.2,那么我

评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值