开发者社区> 问答> 正文

Pod 生命周期在Running阶段,会进行哪些操作?

已解决

Pod 生命周期在Running阶段,会进行哪些操作?

展开
收起
詹姆斯邦德00 2022-10-19 16:51:58 459 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    在Pod running阶段的时候,Pod 就迎来对其健康的检查,当前kubelet 提供三种方式判定:

    • readiness:检查Pod 是否为健康。

    • liveness:件看Pod 是否正常,若检查失败,则重启容器。

    • readinessGate:提供给第三方组件健康验证,第三方组件验证不过,则Pod 不为健康。

    image.png

    readiness 与liveness 检查参数都是一致的。

    • httpGet/tcpSocket:都是检查方式,一种是http 请求验证,一种是tcpSocket,其中也有exec执行命令,以及grpc形式验证。

    • initialDelaySeconds:延迟多久开始检查,原因在于容器启动的时候,通常需要过段时间进行验证。

    • periodSeconds:检验时间周期。

    • failureThreshold:连续几次失败,则代表这轮检验失败。

    • successThreshold:连续几次成功,则代表这轮检验成功。

    • timeoutSeconds:代表检验超时时间,若检验在该配置时间内没有返回,则认为检验失败。

    readiness、liveness 虽然参数不一样,但对检验的结果行为不一致。

    • readiness 默认状态下为false,也就是Pod 为不健康,直到检查通过,才将Pod变为健康。

    • liveness 默认状态下为true,不会在刚开始就将Pod 重启,只有等检查不通过后,才会进行容器重启操作。

    readinessGate 是Pod 健康的扩展, kubelet 会基于此, 默认在pod.status.conditions 上配置对应的condition,比如当前例子readinessGate 为conditionType:TestPodReady,则相应就会有conditions。

    image.png

    当该condition.status 为false 时,则Pod 就会一直是不健康,哪怕readiness 检查通过,直到第三方系统去操作更新Pod 该condition.status 为true,才可以将Pod 变为健康,这样就可以接入更多的Pod 健康指标。

    以上内容摘自《SREWorks 云原生数智运维工程实践》电子书,点击https://developer.aliyun.com/ebook/download/7784可下载完整版。

    2022-10-19 17:36:22
    赞同 展开评论 打赏
问答分类:
来源圈子
更多
收录在圈子:
阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载