42.第34章 yaml文件格式、Pod状态和探针

一.yaml文件格式

人员名单:
  张三:
    年龄: 18 #
    职业: Linux运维工程师
    爱好:
      - 看书
      - 学习
      - 加班
     
  李四:
    年龄: 20
    职业: Java开发工程师 # 这是职业
    爱好:
      - 开源技术
      - 微服务
      - 分布式存储
    大小写敏感
    使用缩进表示层级关系

​ 缩进时不允许使用Tal键,只允许使用空格
​ 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
​ 使用”#” 表示注释,从这个字符一直到行尾,都会被解析器忽略
​ 比json更适用于配置文件

二.pod状态

第一阶段:
Pending:
#正在创建Pod但是Pod中的容器还没有全部被创建完成,处于此状态的Pod应该检查Pod依赖的存储是否有权限挂载、镜像是否可以下载、调度是否正常等。
Failed
#Pod中有容器启动失败而导致pod工作异常。
Unknown
#由于某种原因无法获得pod的当前状态,通常是由于与pod所在的node节点通信错误。
Succeeded
#Pod中的所有容器都被成功终止即pod里所有的containers均已terminated。

第二阶段:
Unschedulable:
#Pod不能被调度,kube-scheduler没有匹配到合适的node节点
PodScheduled
#pod正处于调度中,在kube-scheduler刚开始调度的时候,还没有将pod分配到指定的pid,在筛选出合适的节点后就会更新etcd数据,将pod分配到指定的pod
Initialized
#所有pod中的初始化容器已经完成了
ImagePullBackOff:
#Pod所在的node节点下载镜像失败
Running
#Pod内部的容器已经被创建并且启动。
Ready
#表示pod中的容器已经可以提供访问服务
Error:#pod启动过程中发生错误
NodeLost:#pod所在节点失联
Unkown:#pod所在节点失联或其它未知异常
Waiting:#pod等待启动
Pending:#pod等待被调度
Terminating:#pod正在被销毁
CrashLoopBackoff:#pod探针检测失败,但是kubelet正在将它重启
InvalidImageName:#Node节点无法解析镜像名称导致镜像无法下载
ImageInspactError:#无法验证镜像,镜像不完整导致
ErrImageNeverPull:#策略禁止拉取镜像,镜像中心权限是私有等
ImagePullBackoff:#镜像拉取失败,但是正在重新拉取
RegistryUnavailable:#镜像服务器不可用,网络原因或harbor宕机
ErrImagePull:#镜像拉取出错,超时或下载被轻质终止
CreateContainerConfigError:#不能创建kubelet使用的容器配置
CreateContainerError:#创建容器失败
PreStartContainer:#执行PreStart hook报错,pod hook(钩子)是由kubernetes管理的kubelet发起的,当容器中的进程启动前或者容器中的进程终止之前运行,比如容器创建完成后里面的服务启动之前可以检查一下依赖的其它服务是否启动,或者容器退出之前可以把容器中的服务先通过命令停止。
PostStartHookError:#执行PostStart hook报错

RunContainerError:#pod运行失败,容器中没用初始化PID的1的守护进程等
ContainersNotInitialized:#pod没有初始化完毕
ContainersNotReady:#pod没有准备完毕
ContainerCreating:#pod正在创建中
PodInitializing:#pod正在初始化中
DockerDaemonNotReady:#node节点docker服务没有启动
NetworkPlugNotReady:#网络插件还没有完全启动

三.pod探针

#探针的三种处理程序
ExecAction
#在容器内执行指定命令,如果命令退出时返回码为0则认为诊断成功。
TCPSocketAction
#对指定端口上的容器的IP地址进行TCP检查,如果端口打开,则诊断被认为是成功的。
HTTPGetAction
#对指定的端口和路径上的容器的IP地址执行HTTPGet请求,如果响应的状态码大于等于200且小于 400,则诊断被认为是成功的。
#探针类型
livenessProbe
#存活探针,检测容器容器是否正在运行,如果存活探测失败,则kubelet会杀死容器,并且容器将受到其重启策略的影响,如果容器不提供存活探针,则默认状态为 Success,livenessProbe用户控制是否重启pod。

readinessProbe
#就绪探针,如果就绪探测失败,端点控制器将从与Pod匹配的所有Service的端点中删除该Pod的IP地址,初始延迟之前的就绪状态默认为Failure,如果容器不提供就绪探针,则默认状态为 Success,readinessProbe用于控制pod是否添加至service。
posted @ 2021-05-14 21:04  网络之鹰  阅读(603)  评论(0编辑  收藏  举报