【问题标题】:Pod redeploy trigger in golang k8s clientgolang k8s客户端中的Pod重新部署触发器
【发布时间】:2021-09-23 19:44:56
【问题描述】:

如何通过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 信号来完成

【问题讨论】:

  • 问题是为什么您要触发重新部署。通常,当部署规范发生更改时,重新部署会自动发生,例如当 pod 镜像获得新的发布标签时。
  • 您能描述一下您要完成的工作吗?你有部署吗?一个独立的吊舱?您是在尝试升级 pod,还是在原地重新启动它?

标签: linux go kubernetes kubectl microk8s


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-20
      • 2019-05-13
      • 2021-05-07
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多