1 Pod 容器重启策略

容器一旦出现了问题,K8s就会对容器所在的pod进行重启,重启操作是由pod的重启策略决定的,pod的重启策略有三种,可通过下边命令查看。

kubectl explain pod.spec.restartPolicy

Always:  容器失效时,自动重启该容器,默认策略

OnFailure:   容器终止运行且退出码不为0时重启(异常终止)

Never:   无论容器状态如何,都不重启该容器

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

2 Pod数量扩缩容

案例:通过Deploy对pod数量进行扩缩容

创建Pod
# kubectl create -f deploy_nginx.yml # kubectl get pod -n test

通过edit(修改配置文件)方式扩容pod数量
# kubectl get deploy -n test
# kubectl edit deploy deploy-nginx -n test ...

replicas: 2 #修改pod数量 查看pod信息

# kubectl get pod -n test

删除deploy
# kubectl delete -f deploy_nginx.yml

3 Pod版本更新策略

Deploy支持两种镜像更新的策略:通过strategy属性进行配置

kubectl explain deploy.spec.strategy

Recreate:重建更新策略,一次性将所有旧版本pod全部重建成新版本pod

RollingUpdat:滚动更新策略(默认策略),循序渐进的更新

下面是对strategy属性的详细描述

strategy:           #指定新的pod替换旧的pod策略,支持两个属性

   type:              #指定策略类型,支持两种策略

      Recreate:   #在创建出新pod之前会先删掉所有已经存在的pod

      RollingUpdat:  #滚动更新,先更新一部分,在删除一部分,在更新过程中,存在两个版本pod

rollingUpdate:      #当type为RollingUpdat时生效,用于为RollingUpdat设置参数,支持两个属性

maxSurge:          #用来指定在升级过程中最多可新建的pod数量,默认为25%
maxUnavailable: #用来指定在升级过程中最多可删除的pod数量,默认为25%

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐