簡體   English   中英

輕松檢測 Kubernetes 上已棄用的資源

[英]Easily detect deprecated resources on Kubernetes

我們剛剛收到一封來自 GCP 的電子郵件,通知我們我們的集群目前正在使用已棄用的 Beta API,我們需要升級到最新的 API 版本。

我們有 3 個集群在多個命名空間中運行多個資源,因此通過 go 來檢測哪些已經過時會有點痛苦。

我們控制的那些,例如服務、部署、horizontalpodautoscaler、poddisruptionbudgets 等,這些已經更新了。

但是我們有很多服務的清單文件是自動生成的,比如 Halyard 生成的 Spinnaker 服務,或者 Elastic Operator 生成的 ElasticSearch 等。

有沒有辦法按 API 版本過濾所有資源,或者有什么方法可以檢測所有命名空間中已棄用的資源?

為了查看您的集群支持哪些 API

# Print out supported API's in the cluster
kubectl api-versions

要查看已棄用的 API,您可以使用此工具。
這正是您所要求的,它將使用已棄用的 API 打印資源列表。

https://github.com/doitintl/kube-no-trouble

# sample output from the official docs:


$./kubent
6:25PM INF >>> Kube No Trouble `kubent` <<<
6:25PM INF Initializing collectors and retrieving data
6:25PM INF Retrieved 103 resources from collector name=Cluster
6:25PM INF Retrieved 132 resources from collector name="Helm v2"
6:25PM INF Retrieved 0 resources from collector name="Helm v3"
6:25PM INF Loaded ruleset name=deprecated-1-16.rego
6:25PM INF Loaded ruleset name=deprecated-1-20.rego
_____________________________________________________________________
>>> 1.16 Deprecated APIs <<<
---------------------------------------------------------------------
KIND         NAMESPACE     NAME                    API_VERSION
Deployment   default       nginx-deployment-old    apps/v1beta1
Deployment   kube-system   event-exporter-v0.2.5   apps/v1beta1
Deployment   kube-system   k8s-snapshots           extensions/v1beta1
Deployment   kube-system   kube-dns                extensions/v1beta1
_____________________________________________________________________
>>> 1.20 Deprecated APIs <<<
---------------------------------------------------------------------
KIND      NAMESPACE   NAME           API_VERSION
Ingress   default     test-ingress   extensions/v1beta1

安裝kubent

# install `kubent`
sh -c "$(curl -sSL 'https://git.io/install-kubent')"

運行kubent

kubent

在此處輸入圖像描述


其他類似工具:

kdave 檢查集群中任何已棄用或刪除的 apiVersions,並以 Prometheus 指標格式導出它們。 它從已部署的 helm 版本中收集這些 apiVersions 它允許您具有可見性並回答這些問題

  • 集群中有多少應用程序使用了已棄用的 apiVersions
  • 集群中有多少應用程序使用了已移除的 apiVersions
  • 是否會在下一個版本或接下來的兩個版本中刪除已棄用的 apiVersions
  • 這些已棄用或刪除的 apiVersions 的替代 apiVersions 是什么

kdave https://github.com/wayfair-incubator/kdave和 k8s-used-api-versions https://github.com/wayfair-incubator/k8s-used-api-versions

https://www.linkedin.com/pulse/kubernetes-used-api-versions-operator-ahmed-elbakry/ https://www.linkedin.com/pulse/kubernetes-deprecated-api-versions-exporter-ahmed-埃爾巴克里/

有人用過kdave嗎? 使用他們的 cli 在本地運行時,我不斷收到錯誤

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM