golang 怎么获取kubernetes deployments的状态?
如果我们需要把k8s的信息展示为一个友好的web页面。那么deployment 的信息基本上是非常重要的(大部分的服务都是使用deployment部署)。
从yaml 中我们能获取到很多关于deployment 的信息,deployment 状态信息也是能获取到的, 但是这个最终状态是什么,是需要我们自己来判断的。
对于k8s不熟悉的用户,很多时候他只需要知道一个deployment 的最终状态是什么就行了, 也就是一个deployment 唯一的状态。
推荐以下方式获取状态,此方式不仅能获取deployment, 还有很多都能获取。
样例以及说明文档:https://github.com/kubernetes-sigs/cli-utils/tree/master/pkg/kstatus。
如果你使用的是client-go 获取deployment 信息,这里有个需要注意的地方, 就是没有返回gvk信息给你,
而没有gvk信息,使用这个包的时候就会导致你获取到的状态跟你实际deployment 的状态可能不一致,因为没有gvk信息,这个包就没有走到deployment 状态判断哪一个方法。