kubectl 通过 Kubepug 实现集群升级版本检查(废弃API资源检查)
前言
Kubepug
工具可用于k8s版本升级前对API 对象进行检查,并给出反馈。
因内网环境无法使用魔法,故此只能
kubepug
离线安装,配置 kubectl 插件
k8s 的版本迭代很快,虽然主要版本一直没有变化,但是次要版本一直在迭代,同时不同的次要版本之间 API 资源一直在变化,有新加入的,也有废弃删除的。不同版本的 api 资源版本也有不同,往往不是向下兼容的,比如在低版本中 API 资源版本为 v1beta1
,而高版本可能升级为 v1
。但是在高版本中不能运行低版本的API资源。
所以在 k8s 版本升级的时候,需要对之前废弃的和删除的 API 资源 做出清理,需要升级的做升级,或者替换为其他的 API 资源。在这之前,需要一个工具来检查 API 资源对象,那些是已经废弃的删除的,那些将要废弃。
Kubepug
即是这样一个工具,一个升级前检查器,可帮助在迁移到新的主要版本之前在 Kubernetes 资源中找到已弃用和已删除的 API。
Kubepug 安装-离线
kubepug下载地址:https://github.com/kubepug/kubepug/releases
此次部署版本为最新的v1.7.1
配置为 kubectl 插件-可选
验证
因为离线环境,会报上面的错误,需要把对应的 data.json 文件下载下来上传。然后在检查的时候指定文件目录。
data.json下载地址:
https://kubepug.xyz/data/data.json
假如当前k8s版本为1.20,我们希望升级到 v1.24.2
通过检查可以看到 ,1.24 之后的废弃和已经删除的 API 资源。如果要升级到 1.24 需要把删除的 API 处理掉。
以下为CronJob
API更新前后的差异,与检查结果一致:
参考
1.https://kubepug.xyz/
2.https://github.com/kubepug/kubepug
开个班吧
没这个实力阿