1、特殊类型容器pause
-
每启动一个pod就会启动一个pause容器
-
是pod内所有容器的父容器
-
是 pod 中Linux 命名空间共享的基础。
-
占用网络命名空间,在pod中的容器之间共用一个网络命名空间,使容器之间互相通信
-
启用了PID(进程ID)命名空间共享后,它为每个pod充当 PID 1,并接收僵尸进程。
-
可使用127.0.0.1访问其他容器
-
共享主机名域名、网络、pid命名空间
2、initContainers
-
初始化容器,在containers(主容器)之前运行
-
Init 容器总是运行到成功完成为止。
-
每个 Init 容器都必须在下一个 Init 容器启动之前成功完成。
-
等待其他模块Ready:这个可以用来解决服务之间的依赖问题,
-
做初始化配置:
3、pod生命周期
(1)Pod 的生命周期 status
-
挂起(Pending):Pod 信息已经提交给了集群,但是还没有被调度器调度到合适的节点或者 Pod 里的镜像正在下载
-
运行中(Running):该 Pod 已经绑定到了一个节点上,Pod 中所有的容器都已被创建。至少有一个容器正在运行,或者正处于启动或重启状态
-
成功(Succeeded):Pod 中的所有容器都被成功终止,并且不会再重启
-
失败(Failed):Pod 中的所有容器都已终止了,并且至少有一个容器是因为失败终止。也就是说,容器以非
0
状态退出或者被系统终止 -
未知(Unknown):因为某些原因无法取得 Pod 的状态,通常是因为与 Pod 所在主机通信失败导致的
(2)容器生命周期
-
Waiting
(等待) -
Running
(运行中) -
Terminated
(已终止)
4、容器生命周期回调(Hook) 钩子函数
-
有两个回调暴露给容器:
-
PostStart:在容器被创建之后立即被执行。 但是,不能保证回调会在容器入口点(ENTRYPOINT)之前执行。
-
PreStop:在容器终止之前调用,常用于在容器结束前优雅的释放资源。