如何重启Kubernetes Pod?使用3种方法实现

2021年11月20日18:42:06 发表评论 3,920 次浏览

介绍

Kubernetes是一个开源系统,专为编排、扩展和部署容器化应用程序而构建。如果你曾经使用过 Kubernetes,就会知道它对于管理容器有多么有用。 你还将知道容器并不总是以它们应有的方式运行。如果出现错误,你需要一种快速简便的方法来解决问题。 如何重启Kubernetes Pod本教程将解释如何在 Kubernetes 中重启 Pod的方法。 先决条件
  • 访问终端窗口/命令行
  • Kubernetes 集群
  • Kubernetes kubectl命令行工具

重启 Kubernetes Pod

注意: kubectl 命令行工具没有直接重启 pod 的命令。但是,以下解决方法可以节省你的时间,尤其是在你的应用程序正在运行且你不想关闭服务的情况下。 假设容器中的一个 Pod 报告错误。根据重启策略,Kubernetes 可能会尝试自动重启 pod 以使其再次工作。然而,这并不总能解决问题。 Kubernetes如何重启Pod?如果 Kubernetes 无法自行解决问题,并且你找不到错误的根源,那么重新启动 pod 是让你的应用程序再次运行的最快方法。 注意:现代DevOps 团队将有一个快捷方式来重新部署 pod 作为其 CI/CD 管道的一部分。虽然此方法有效,但可能需要相当长的时间。你的 Pod 必须运行整个 CI/CD 过程。

方法一:滚动重启

从更新 1.15 开始,Kubernetes 允许你滚动重启部署。作为Kubernetes的新成员,这是最快的重启方式。
kubectl rollout restart deployment [deployment_name]
上述重启Kubernetes Pod的方法中,命令执行逐步关闭并重新启动部署中的每个容器。你的应用程序仍将可用,因为大多数容器仍将运行。
如何重启Kubernetes Pod?使用3种方法实现
注意:了解如何使用 Prometheus 监控 Kubernetes。监控 Kubernetes 可以让你更好地了解集群的状态。为了更好地管理工作负载的复杂性,我们建议你阅读我们的文章Kubernetes 监控最佳实践。

方法 2:使用环境变量

如何重启Kubernetes Pod?另一种方法是设置或更改环境变量以强制 pod 重新启动并与你所做的更改同步。 例如,你可以更改容器部署日期:
kubectl set env deployment [deployment_name] DEPLOY_DATE="$(date)"
在上面的示例中,该命令set env设置环境变量的更改,deployment [deployment_name]选择你的部署,并DEPLOY_DATE="$(date)"更改部署日期并强制重新启动 pod。
如何重启Kubernetes Pod?使用3种方法实现
Kubernetes如何重启Pod
注:了解参考我们的教程使用环境变量都设置环境变量在Linux中,设置环境变量在Mac,并设置环境变量在Windows中。

方法三:扩容副本数

如何重启Kubernetes Pod?最后,你可以使用该scale命令更改故障 Pod 的副本数量。将此数量设置为零实质上会关闭 pod:
kubectl scale deployment [deployment_name] --replicas=0
重启Kubernetes Pod的方法:要重新启动 pod,请使用相同的命令将副本数设置为大于零的任何值:
kubectl scale deployment [deployment_name] --replicas=1
当你将副本数设置为零时,Kubernetes 会销毁它不再需要的副本。 一旦你设置的数字大于零,Kubernetes 就会创建新的副本。新副本的名称将与旧副本不同。你可以使用该命令kubectl get pods检查 Pod 的状态并查看新名称是什么。
如何重启Kubernetes Pod?使用3种方法实现
Kubernetes如何重启Pod

结论

如何重启Kubernetes Pod?Kubernetes 是一个非常有用的系统,但与任何其他系统一样,它也不是没有故障的。 当问题确实发生时,你可以使用上面列出的三种方法来快速、安全地让你的应用程序运行,而无需为你的客户关闭服务。 重新启动 Pod 后,你将有时间查找并修复问题的真正原因。
木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: