使用Pluto 检测已弃用的 Kubernetes API

2023-09-11 11:01:30 浏览数 (4)

前言

Kubernetes版本不断迭代中,Kubernetes API 也一直在变化。随着这些更改的出现,API 的某些部分被弃用并最终被删除。为了能够保持最新的 Kubernetes 集群版本,我们必须识别不推荐使用的 API 并更新它们。在实际环境中,我们已经将资源部署到Kubernetes集群中,并希望API版本保持为最新,以便我们可以安全的升级Kubernetes版本到最新稳定版。然而问题来了?我们如何发现已弃用和即将删除的API版本资源呢?该问题的一个答案是查看官方弃用文档,并检查在即将到来的Kubernetes更新中将删除的API资源版本。然后,最重要的是如果我们跳过多个版本,我们将不得不对当前Kubernetes版本和目标版本之间的所有版本重复此检查。在具有数十种资源类型和版本的大型集群中,这可能变得乏味且容易出错。幸运的是,FairwindOps 的pluto等工具可帮助我们发现已弃用和即将删除的资源 API 版本。

Kubernetes API弃用的原因

Kubernetes指定了一个弃用策略,它定义了如果API的某些部分被弃用意味着什么?本质上意味着Kubernetes API服务器的相关端点被标记为删除并最后被删除,由于API服务器管理资源生命周期,因此使用已删除API版本的资源将组织该资源的部署。因此,如果我们未能更新我们的资源API版本,我们要么会被一个过时的Kubernetes版本卡住;要么更新到新的Kubernetes版本将阻止某些资源的部署。两者都是不受欢迎的状态,因此我们要么:

  • 继续使用不稳定的Kubernetes版本
  • 我们的Kubernetes部署将是不稳定的

安装Pluto

代码语言:javascript复制
# 案例采用的系统版本是Centos 7.4
$ cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
$ wget https://github.com/FairwindsOps/pluto/releases/download/v5.18.1/pluto_5.18.1_linux_amd64.tar.gz
$ tar zxf pluto_5.18.1_linux_amd64.tar.gz
$ mv pluto /usr/local/bin/

Pluto示例

目录中的文件检测

代码语言:javascript复制
$ wget https://github.com/FairwindsOps/pluto/archive/refs/heads/master.zip
$ unzip master.zip
$ pluto detect-files -d pluto-master/pkg/finder/testdata/
NAME        KIND         VERSION              REPLACEMENT   REMOVED   DEPRECATED   REPL AVAIL
utilities   Deployment   extensions/v1beta1   apps/v1       true      true         true
utilities   Deployment   extensions/v1beta1   apps/v1       true      true         true

Want more? Automate Pluto for free with Fairwinds Insights!
 


	

1 人点赞