Kubernetes系列-Pod重启策略

1 重启策略

Pod在遇到故障之后重启的动作。

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

注意:k8s中不支持重启Pod资源,只有删除重建。

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

1.2 重启策略设置建议 

重启策略默认是Always,在一般情况下,重启策略不需要设置。

1.2  always策略配置

$  vim always.yaml
apiVersion: v1
kind: Pod
metadata:
  name: foo
spec:
  containers:
  - name: busybox
    image: busybox
    args:
    - /bin/sh
    - -c
    - sleep 30; exit 3
 kubectl apply -f always.yaml 

创建中。 

立即重启。

注:证明重启策略默认是always,总是自动拉取

1.3 never策略配置

$ vim never.yaml
apiVersion: v1
kind: Pod
metadata:
  name: foo01
  namespace: zy
spec:
  containers:
  - name: busybox
    image: busybox
    args:
    - /bin/sh
    - -c
    - sleep 30; exit 3
  restartPolicy: Never
kubectl apply -f never.yaml

注:这时pod故障后就一直不重启了  

1.4 onfailure策略配置 

1.4.1 非0状态

$ vim onfailure.yaml
apiVersion: v1
kind: Pod
metadata:
  name: foo02
  namespace: zy
spec:
  containers:
  - name: busybox
    image: busybox
    args:
    - /bin/sh
    - -c
    - sleep 20; exit 3
  restartPolicy: OnFailure
kubectl apply -f onfailure.yaml

当容器异常退出(退出状态码非0)时,重启容器  

1.4.2 为0状态

$ vim onfailure0.yaml
apiVersion: v1
kind: Pod
metadata:
  name: foo03
  namespace: zy
spec:
  containers:
  - name: busybox
    image: busybox
    args:
    - /bin/sh
    - -c
    - sleep 20; exit 0
  restartPolicy: OnFailure
kubectl apply -f onfailure0.yaml 

退出后显示的完成,说明正常退出,只是完成了这个动作,并不是错误。 

退出状态码为0时包含两种状态,一种是正常完成后返回值0,(complated);第二种 手动指定 exit 0 

猜你喜欢

转载自blog.csdn.net/ygq13572549874/article/details/130833836
今日推荐