zoukankan      html  css  js  c++  java
  • k8s的pod生命周期

    pod的生命周期:
    1.init container
    2.main contianer
    (1) post start hook :容器启动后做什么操作(可以命令查看kubectl explain pod.spec.containers.livesysle)
    (2) readiness probe :容器正常工作阶段 (可以命令查看kubectl explain pod.spec.containers.readinessProbe/livenessProbe) (用于存活性探测和就绪性探测)
    (2) pre stop hook :容器停止前做什么操作 (可以命令查看kubectl explain pod.spec.containers.livesysle)
    例:
    在kubectl explain pod.spec.containers.readinessProbe下面的选项解释:
    exec (健康状态监测) 以命令方式来检测容器健康监测,注意一定得是容器内包含的镜像所支持的命令才可以。(如:ps,ss,netstat命令检查服务的端口或者反馈来判断容器是否健康)
    failureThreshold 多判断几次,连续N次监测不成功才认为真不健康。 (错误阈值)
    httpGet (健康状态监测) 例:可以用请求服务,看看是否会有你认为标准的反馈结果,如果正常则可以认为是健康的。
    initialDelaySeconds 初始化多久以后再检查,不定义的话,刚启动就检查。
    periodSeconds 检查周期,隔多长时间监测一次。
    successThreshold 多判断几次,连续N次监测成功才认为是健康的。 (成功阈值)
    tcpSocket (健康状态监测) 探测服务所监听的某一端口是否可以响应,若能响应,则认为健康。
    timeoutSeconds 当检查时对方没响应,我们最多等待多长时间后就认为是监测失败。

    健康状态监测和就绪状态监测区别:健康监测有权重启容器,就绪监测无权重启容器。

    pod对象的相位:
    pod对象总是应该处于其生命进程中的一下几个相位(phase)之一

    1.pending:apiserver创建了pod资源对象并已存入etcd中,但尚未被调度完成,或仍处于从仓库下载镜像的过程中。
    2.running: pod 已经被调度到某节点,并且所有容器都已经被kubelet创建完成。
    3.succeeded:pod中的所有容器都已经成功终止并且不会被重启;
    4.failed:所有容器都已经终止,但至少有一个容器终止失败,即容器返回了非0值的推出状态或已经被系统终止。
    5.unknown:apiserver无法正常获取到pod对象的状态信息,通常是由于其无法与所在工作节点的kubelet通信所致。

  • 相关阅读:
    java.sql.SQLException: 数据大小超出此类型的最大值
    日志收集系统 ELK
    centos下mysql 数据库安装、调试
    Log4j应用
    使用webuploader实现大文件断点续传(前端部分)
    es6学习 -- 解构赋值
    es6学习 -- let和const
    关于禁止页面滚动的实践(禁止滚轮事件)
    匿名函数与闭包
    JS高级学习总结--面向对象
  • 原文地址:https://www.cnblogs.com/Smbands/p/10840761.html
Copyright © 2011-2022 走看看