美文网首页
2023-02-10-Pod的常见状态、pause容器简介;

2023-02-10-Pod的常见状态、pause容器简介;

作者: DGFM | 来源:发表于2023-02-09 14:12 被阅读0次

    Pod常见状态:kubectl get pod 显示的状态信息;

    Unschedulable:Pod不能被正常调度,kube-scheduler没有匹配到合适的node节点;

    可能的产生原因:

    1.node节点资源不足;

    2.在做“亲和”时出错导致无法找到相关node;

    Podscheduler:pod正处于被调度状态,在kube-scheduler刚开始调度时,还没有将pod具体分配到指定的node,在筛选出合适的节点后就会更新etcd数据,将pod分配到指定的node节点;(调度过程很快,除非负载很高,否则很难观测到此状态)

    Pending:正在创建pod,但是pod中的container还没有全部被创建完成;

    可能的产生原因:

    1.当环境负载较高时,可能会因为调度临时终端导致短暂,临时的Pending状态;

    2.pod内某个container因为权限或依赖问题(如存储pv或pvc创建中断)导致无法继续创建;

    Faild:pod中有container启动失败,导致的pod工作异常;

    可能的产生原因:

    1.pod所使用的镜像出错,例如其中服务或环境配置报错;

    Unknown:由于某种原因无法获取pod当前状态,较少见到;

    可能的产生原因:

    1.通常是由于与pod所在node节点通信错误;

    Initialized:所有pod中的初始化容器已完成;

    ImagePullBackOff:pod所在节点下载镜像失败;

    可能的产生原因:注意这个状态其实表示已经连接到Harbor服务,所以并非权限失败

    1.Harbor服务器负载过高;

    2.镜像下载超时导致;

    Running:pod内部的container已经被创建并启动;

    Ready:表示pod中的容器已经可以提供访问服务,通过# kubectl describe pod观测;

    Error:pod启动过程中发生错误,较少见到,可以使用# kubectl describe 进行排错;

    可能的产生原因:

    1.container内环境配置问题;

    NodeLost:node节点失联;

    Waiting:pod等待启动;

    Terminating:pod正在被撤销;

    CrashLoopBackOff:由于某些原因,kubelet将container进行重构,虽然不一定能解决问题;

    InvalidImageName:node节点无法解析镜像名称,导致镜像无法下载;

    可能的产生原因:

    1.镜像名称书写错误;

    ImageInspectError:无法检验镜像,通常是因为镜像不完整导致,较为少见;

    ErrImageNeverPull:策略禁止拉取镜像,可能是因为镜像中心权限为私有等原因;

    RegistryUnavailable:镜像服务器不可用,网络原因或Harbor宕机;

    ErrImagePull:镜像拉取出错,超时或下载被强制终止;

    CreateContainerConfigError:不能创建kubelet使用的容器配置;

    CreateContainerError:创建容器失败;

    RunContainerError:pod运行失败,容器中没有初始化pid为1的守护进程等原因;

    ContainersNotInitialized:pod没有初始化完毕;

    ContainerCreating:pod正在创建中;

    PodInitializing:pod正在初始化中;

    DockerDeamonNotReady:node节点docker服务没有启动;

    NetworkPluginNotReady:网络插件没有启动;

    pause容器:

    又叫infra容器,是pod的基础容器,镜像体积只有几百K左右,配置在kubelet中;

    功能:实现同一个pod中多个container之间的网络通信;

    infra容器加载后会初始化Network Namespace,之后其他容器就可以加入到infra容器中共享pod网络,因此如果一个pod中有A,B两个容器container,那么关系如下:

    1.A容器和B容器可以直接使用localhost通信;

    2.A容器和B容器可以看到网卡,IP和端口监听信息;

    3.pod只有一个IP地址,就是该pod的Network Namespace对应的IP地址(由infra容器初始化并创建);

    4.K8S环境中每个pod有一个独立的IP地址(前提是地址充足),并且此IP被各个pod中所有的container在内部共享使用;

    5.pod删除后infra容器随即被删除,其ip被回收;

    pause容器共享的namespace:

    1.net namespace,pod中所有的container共享同一个网络命名空间,就是说他们都使用相同的IP和端口信息;

    2.IPC namespace,pod中所有的container可以使用systemc VIPC或POSIX消息队列进行通信;

    3.UTS namespace,pod中所有的container共享同一个主机名;

    MNT namespace,PID namespace,User namespace并未共享;

    相关文章

      网友评论

          本文标题:2023-02-10-Pod的常见状态、pause容器简介;

          本文链接:https://www.haomeiwen.com/subject/gmthkdtx.html