kubernetes特殊容器pause及pod和容器的生命周期

本文详细阐述了Kubernetes中的pause容器的作用,initContainers用于初始化和解决服务依赖,以及pod和container的生命周期管理,包括各种状态和hook函数如PostStart和PreStop的使用场景。
摘要由CSDN通过智能技术生成
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:在容器终止之前调用,常用于在容器结束前优雅的释放资源。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值