【问题标题】:Is there a way to automatically restart a pod deployment if a container is unhealthy如果容器不健康,有没有办法自动重启 Pod 部署
【发布时间】:2021-06-13 11:04:14
【问题描述】:

我的 kubernetes 集群有一个 pod 部署定义,有 10 个 pod 副本。我遇到了一个问题,即 pod 实例的容器将进入不可恢复状态,我发现的唯一缓解方法是通过以下命令重新启动 pod 部署:

kubectl rollout restart deployment my-pod

我想要一种通过活性探针甚至 pod 条件状态自动执行 pod 部署重启的方法。

目前有什么现成的解决方案吗?

【问题讨论】:

  • 为什么状态不可恢复?简单的容器重启不会有帮助吗?
  • 我们正在使用开源身份验证,它列出了 pod 并充当中间人对我们所有的 pod 执行身份验证。中间人服务可能会在列出 pod 时处于错误状态,因此我们需要重新启动 pod 部署。
  • 您能解释一下您使用的工具吗?

标签: kubernetes kubernetes-pod kubernetes-container


【解决方案1】:

Kubernetes 的 pod 对象为您提供了健康检查功能。如果 pod 不健康,pod 控制器会自动重启你的 pod。

请在此处查看官方文档,https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/

它提供了使健康检查探测工作所需的所有实现。

【讨论】:

  • 这不准确:容器将被重启,而不是 pod,它由 kubelet 处理,而不是 pod 控制器。
  • 嗨瑞恩!是的,我了解活性探针。尽管正如 Thomas 所提到的,这是一个容器重启,而不是一个 pod。仍在寻找可以重新启动 pod 的解决方案。
猜你喜欢
  • 2013-01-13
  • 1970-01-01
  • 1970-01-01
  • 2022-01-18
  • 2020-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多