【Kubernetes】Pod学习(十三)Init Container:初始化容器

本文详细介绍了Kubernetes中的初始化容器(Init Containers),它们用于在启动应用容器前执行初始化任务,如等待依赖、生成配置、下载依赖等。Init Containers只运行一次,不支持readinessProbe,并按顺序执行,所有IC执行成功后才启动应用容器。文章通过实例展示了如何设置和使用Init Containers,包括共享Volume来传递数据给应用容器,并解析了Pod的资源请求和限制。在Pod重启时,Init Containers会重新执行。
摘要由CSDN通过智能技术生成

此文为学习《Kubernetes权威指南》的相关笔记

学习笔记:

初始化容器Init Container(后称IC)用于在启动应用容器前进行初始化,完成应用容器所需的预置条件。

主要应用场景如:

  • 等待其他关联组件正确运行(如数据库或后台某个服务)
  • 基于环境变量或配置模板生成配置文件
  • 从远程数据库获取本地所需配置,或者将自身注册到某个中央数据库中
  • 下载相关依赖包,或者对系统进行一些预配置操作

作为初始化的工具, IC容器仅运行一次就结束,且不能设置readinessProbe探针,多个IC容器将依次执行,系统要求必需在所有IC执行成功后才能继续执行下一个容器。

在IC容器中也可以设置资源限制,但与应用容器存在如下不同:

  • 如果多个IC容器都定义了资源请求/限制,则取最大值作为所有IC容器的资源请求值/限制值
  • Pod的有效资源请求值/限制值则取(应用容器值之和/IC容器最大值)中的较大值
  • Pod的有效资源请求值/限制值是调度算法、真实资源配额和cgroup设置真正使用的值,也就是说,IC容器可以为初始化操作预留系统资源

当Pod被重启时,IC容器将会重新执行,常见的Pod重启场景如下:

  • IC容器被更新时,整个Pod将会重启(应用容器被更新时,只有该应用容器会被重启)
  • Pod的infrustructure容器更新时,Pod将会被重启
  • Pod中所有容器都终止,且RestartPolicy=Always,Pod将会被重启。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值