kubernetes 使用k8s rest API获取helm发布创建的所有资源

e0bqpujr  于 2022-11-02  发布在  Kubernetes
关注(0)|答案(1)|浏览(201)

有没有方法可以使用Kubernetes REST API获得所有helm版本的列表,以及此版本创建的所有资源?
我的意思是类似于helm和kubectl命令的东西
kubectl get all --all-namespaces -l=release-name
kubectl get all --all-namespaces -l=release-name
但使用REST -https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/

xzv2uavs

xzv2uavs1#

Helm构建在KubernetesAPI层之上,因为它创建了部署和服务等对象,并将其状态存储在Secrets中;但是Helm版本本身并不是Kubernetes对象,您不能直接使用KubernetesAPI来访问它。
如果你的应用是Go语言,那么Helm 3包含了一个Go SDK,它将大部分helm二进制代码公开为Go原生库调用。不过,这不是一个网络可见的API,如果你的应用是其他语言的,你将无法与它集成。
相反,如果能够使用Kubernetes的REST API来操纵应用程序比使用Helm本身更重要,那么一种替代方法是编写一个程序(一个Kubernetes controller),它与Kubernetes API交互,并让它由custom resource驱动,一个Kubernetes对象,它包含了你的应用程序特定的配置。这一对通常被称为operator。尽管比Helm图表更重要,这涉及到实际编写代码,而不仅仅是插入KubernetesYAML。(而且,与Helm图表相比,您可以使用宿主语言的本机测试工具对更复杂的逻辑进行单元测试。)
但简而言之,除非您可以使用Helm Go SDK,否则除了使用helm命令之外,没有一个好的方法可以通过编程方式与Helm图表交互。

相关问题