【云原生--Kubernetes】Pod重启策略

本文介绍了Kubernetes中Pod的三种重启策略:Always(默认)、Never和OnFailure。Always策略在容器退出后总是重启,Never则从不重启,OnFailure仅在容器异常退出(状态码非0)时重启。此外,文章还讨论了不同状态的Pod,如Pending、Waiting、ContainerCreating、ImagePullBackOff、CrashLoopBackOff、Error、Terminating和Unknown,分析了这些状态的原因及解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


引言:在k8s集群中,当某个pod资源需要重启时,我们只会对其进行删除,由其pod控制器进行重新构建。k8s集群的自愈也是对资源的一个重新构建, 在k8s中是没有重启一说的。我们 常说的重启,其实就是对pod资源的重新构建,那么k8s集群在对资源进行管理时,其“重启”规则又是什么呢?

一. 重启策略

在k8s集群中有如下三种重启策略:

  1. Always:当容器终止退出后,总是重启容器,默认策略
  2. OnFailure:当容器异常退出(退出状态码非0)时,重启容器
  3. Never:当容器终止退出,从不重启容器。

重启策略适用于pod对象中的所有容器,首次需要重启的容器,将在其需要时立即进行重启,随后再次需要重启的操作将由kubelet延迟一段时间后进行,且反复的重启操作的延迟时长为10s,20s,40s,80s,160s,300s,300s是最大延迟时长

重启策略设置建议
因为重启策略默认的是Always,这也是合理的,因此在一般情况下,重启策略不需要设置,这里仅仅是作为知识点拿出来展示一下,在实际使用中,在大多数情况下都不需要进行重启策略配置

二. Always

apiVersion: v1
kind: Pod
metadata:
  name: foo
spec:
  containers:
  - name: busybox
    image: busybox
    args:
    - /bin/sh
    - -c
    - sleep 30; exit 3

在这里插入图片描述

没有定义重启策略时,默认的就是always

kubectl apply -f always.yaml
kubectl get pod -o wide -w

在这里插入图片描述
注:证明重启策略默认是always,总是自动拉取

三. Never

apiVersion: v1
kind: Pod
metadata:
  nam
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值