golang k8s 客户端中的 Pod 重新部署触发器

时间:2021-07-14 20:27:17

标签: linux go kubernetes kubectl microk8s

如何通过k8s golang客户端触发壁炉的更新(重新部署)。

目前,我使用这些库来获取有关 pod 和命名空间的信息:

v1 "k8s.io/api/core/v1
k8s.io/apimachinery/pkg/apis/meta/v1
k8s.io/client-go/kubernetes
k8s.io/client-go/rest

也许还有另一个库,或者可以通过 linux 信号来完成

2 个答案:

答案 0 :(得分:2)

触发滚动重启的标准方法是使用当前时间戳在 pod 规范中设置/更新注释。更改本身只会更改 pod 模板哈希,从而触发 Deployment 控制器执行其操作。您可以使用 client-go 来执行此操作,但如果不是 Go,则可能使用您更熟悉的语言。

答案 1 :(得分:1)

go 客户端和类似的库将遵循 REST API 结构。我相信 kubectl 客户端也使用 API,所以应该是可能的。

查看go库中pod函数的代码(可能“Apply”就是你要找的): https://github.com/kubernetes/client-go/blob/master/kubernetes/typed/core/v1/pod.go 和 API 参考: https://kubernetes.io/docs/reference/kubernetes-api/