K8S 容器重启策略、数量扩缩容、版本更新策略
容器一旦出现了问题,K8s就会对容器所在的pod进行重启,重启操作是由pod的重启策略决定的,pod的重启策略有三种,可通过下边命令查看。Always:容器失效时,自动重启该容器,默认策略OnFailure:容器终止运行且退出码不为0时重启(异常终止)Never:无论容器状态如何,都不重启该容器。
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%
更多推荐



所有评论(0)