Kubeadm初始化报错“your configuration file uses an old API spec“kubeadm.k8s.io/v1alpha1”. Please use kube“

项目场景:

笔者近日在根据张磊课程学习K8S过程中,进行了kubeadm的实验,由于安装版本与课程中的存在出入,导致了一些报错,故将报错和解决方法记录在此,以供参考。


问题描述

提示:这里描述项目中遇到的问题:

教程中kubeadm初始化的配置文件如下:

apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
controllerManagerExtraArgs:
	horizontal-pod-autoscaler-use-rest-clients: "true"
	horizontal-pod-autoscaler-sync-period: "10s"
	node-monitor-grace-period: "10s"
apiServerExtraArgs:
	runtime-config: "api/all=true"
	kubernetesVersion: "stable-1.11"

在执行初始化命令:

$ kubeadm init --config kubeadm.yaml

会发生如下报错:

your configuration file uses an old API spec: “kubeadm.k8s.io/v1alpha1”. Please use kubeadm v1.11 instead and
run ‘kubeadm config migrate --old-config old.yaml --new-config new.yaml’, which will write the new, similar 
spec using a newer API version.

原因分析:

由于实际安装的kubeadm和kubenates版本并不是1.11,所以会发生如上报错。


解决方案:

通过以下指令:

$ kebeadm version
$ kubenates version

查看两者的版本号,我查到的结果是1.28.2,所以需要到官网找到所下载版本的官方文档,寻找支持的apiVersion,以及对应的配置文件。

在directories一栏中可以发现有两个版本:
在这里插入图片描述
选择v1beta3(4没有测试过),点击进入对应文档。

文档中有对应的配置文件示例:
在这里插入图片描述
对应该示例对上述教程中的配置文件进行修改,结果如下:

apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
controllerManager
	extraArgs:
		horizontal-pod-autoscaler-use-rest-clients: "true"
		horizontal-pod-autoscaler-sync-period: "10s"
		node-monitor-grace-period: "10s"
apiServer
	extraArgs:
		runtime-config: "api/all=true"
kubernetesVersion: "v1.28.2"

保存后再次执行指令:

$ kubeadm init --config kubeadm.yaml

就可以完成 Kubernetes Master 的初始化部署。

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值