【问题标题】:Restarting completed k8 job pods after the aws cluster restart在 aws 集群重新启动后重新启动已完成的 k8 作业 pod
【发布时间】:2020-08-04 22:44:51
【问题描述】:

我有一个 k8s 作业 pod,当我们使用 kubectl apply 部署服务时,它会向微服务发送 rest 调用以初始化 redis。但是,当 aws 集群重启时,k8s 作业 pod 不会重新启动,因为它处于已完成状态,并且只有微服务 pod 会重新启动。

如何使用 aws cluster restart 重新启动已完成的作业 pod?

【问题讨论】:

  • K8s 作业的重启策略为 'OnFailure' 或 'Never' 。完成后的工作就达到了目的。
  • 嗨,Sushma,欢迎加入 Stack,您解决了吗?

标签: kubernetes kubernetes-pod


【解决方案1】:

Kubernetes 专为高可用性而设计,可以在没有故障和停机的情况下工作,因此“重新启动 kubernetes 集群” 并不是一个常见的用例。虽然我理解在某些情况下,您可能希望在周末关闭一个开发集群以节省资金,并希望当您启动它时,它会恢复到之前的状态。

作业一旦完成就无法重新开始,所以这不是一个好的选择。

您可以使用部署并以initcontainer 的身份运行初始化脚本(发送其余调用的脚本),并在完成后运行pause container(因此它不使用资源)。

所以现在当你重新启动集群时,初始化 pod 将被调度并且 init 容器将运行。请注意,在这种情况下,当运行 pod 的节点出现故障时,pod 将被重新调度,并且您的初始化 pod 将再次运行。这看起来是一个合理的选择,但您需要确保其余调用是幂等的。

您可以做的其他事情是使用 redis oparator 为您处理配置。在 this list of 运算符上查找 redis 运算符。

【讨论】:

    猜你喜欢
    • 2019-06-11
    • 1970-01-01
    • 2021-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-09
    相关资源
    最近更新 更多