当前位置: 首页 > news >正文

【赵渝强老师】K8s Pod中的初始化容器

1

K8s Pod由一个或者多个容器组成,这里的容器通常指的是运行应用程序的业务容器。但是Pod中除了业务容器外,还有基础容器、初始化容器和临时容器。

初始化容器晚于基础容器运行,但先于业务容器运行。如果Pod的初始化容器运行失败,在默认情况下Kubernetes会不断尝试重启Pod,直到初始化容器运行成功。如果将Pod的配置参数“restartPolicy”设置为“Never”,这时候Kubernetes将不会执行重启的动作。

如果要将Pod中的容器指定为初始化容器,可以通过在“spec”中添加“initContainers”字段。一个Pod可以指定多个初始化容器,它们会按顺序逐个运行。每个初始化容器必须运行成功,下一个才能够运行。当所有的初始化容器运行完成后,Kubernetes才会开始执行业务容器从而运行应用程序。

image.png
点击这里查看视频讲解:【赵渝强老师】K8s中Pod的初始化容器

下面给出一个初始化容器的示例。

(1)创建initcontainer.yaml文件,并输入下面的内容。

apiVersion: v1
kind: Pod
metadata:name: myapp-podlabels:app: myapp
spec:containers:- name: myapp-containerimage: busybox:1.28command: ['sh', '-c', 'echo The app running! && sleep 5']initContainers:- name: init-myserviceimage: busybox:1.28command: ['sh', '-c', 'echo The init-myservice running! && sleep 5']- name: init-mydbimage: busybox:1.28command: ['sh', '-c', 'echo The init-mydb running! && sleep 5']

(2)执行下面的语句创建Pod。

kubectl apply -f initcontainer.yaml

(3)Pod创建成功后,使用describe查看具体的输出信息,如下图所示。

kubectl describe -f initcontainer.yaml

2

通过“Message”的输出信息可以看成,Kubernetes首先启动了两个初始化容器“init-myservice”和“init-mydb”,最后启动了业务容器“myapp-container”。

因为初始化容器与业务容器分离,因此它具有以下的优势:

  • 在初始化容器中可以提前安装业务容器中使用到的工具或者运行一些初始化的脚本。
  • 将与应用程序中依赖的工具和脚本分离到初始化容器中,可以避免这些工具导致应用镜像的安全性降低。
  • 开发人员可以独立进行镜像的创建和部署,而不需要将所有的组件联合构建成一个单独的应用镜像。
  • 初始化容器可以独立访问Kubernetes中的一些敏感信息,如:Secrets。
  • 由于初始化容器必须在业务容器之前执行完成,因此可以利用初始化容器来阻塞或延迟业务容器的启动,直到满足了一组先决条件。
http://www.jsqmd.com/news/112062/

相关文章:

  • 【赵渝强老师】K8s Pod中的业务容器
  • 【赵渝强老师】K8s Pod中的临时容器
  • 2025年浙江专业的ai搜索企业TOP5推荐:精选ai搜索公司助力企业营销获客腾飞 - mypinpai
  • 外贸-order
  • 电流探头 100mV/A应该如何解读呢?
  • 2025年思维导图背诵方法、抽认卡管理软件方法核心学习方式TOP5推荐 - 工业推荐榜
  • 2025年高校人工智能实训室建设服务商TOP5排行榜,中教智讯设备品质好 - 工业推荐榜
  • 2025年上海遗产继承纠纷咨询排行榜,推荐靠谱的遗产继承事务所及精选机构 - myqiye
  • 2025年高校AI实训解决方案服务商推荐,北京中教智讯设备的智能化程度高吗? - myqiye
  • 2025年激光整平机厂家权威推荐榜单:大型混凝土整平机/混凝土整平机/小型激光整平机源头厂家精选 - 品牌推荐官
  • 详细介绍:C# 泛型 委托 接口
  • 基于Python+Vue开发的摄影网上预约管理系统源码+运行步骤+计算机专业
  • 【赵渝强老师】Docker的Bridge网络模式
  • Python3 asyncio 模块
  • 2025口碑不错的展馆设计公司TOP5权威推荐:人防展馆设计公司解析 - 工业品牌热点
  • 详细介绍:2024CSP-S提高组第二轮试题及解析(第一题、决斗(duel))
  • 数学_中考压轴_将军饮马
  • QtCreator的菜单栏不见了
  • 2025年专业工程律师推荐,工程律师哪家靠谱全解析 - 工业推荐榜
  • ROS1-c++编译开发-CMake-Rviz可视化工具-roslaunch-01 - jack
  • 【赵渝强老师】Docker的Container网络模式
  • 2025年视觉激光打标机源头厂家权威推荐榜单:双头视觉激光打标/CCD视觉自动激光打标机/生产线激光打标机源头厂家精选 - 品牌推荐官
  • 为什么协程能让程序不再卡顿?——从同步、异步到 C++ 实战
  • 2025年度精密轧机大型厂家排名:环保型精密轧机解析 - myqiye
  • 有的人,叫他用 AI 搜答案,他居然真只是填个答案
  • 详细介绍:从0到1:Dubbo分布式服务性能压测全指南(JMeter+Gatling实战对比)
  • 完整教程:openvela 使用 VSCode 调试 SIM 环境
  • 2025年温州比较不错的文武专业学校排行榜,资质齐全的文武学校品牌企业推荐 - mypinpai
  • 【赵渝强老师】Kubernetes命令行管理工具:kubectl
  • 2025认证乳化机供应商TOP5推荐:大型厂家选型指南,破解行业痛点助力高效生产 - 工业品牌热点