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

详解init 容器

什么是init容器

init 容器是一种特殊容器,在 Pod 内的应用容器启动之前运行。Init 容器可以包括一些应用镜像中不存在的实用工具和安装脚本。

你可以在 Pod 的规约中与用来描述应用容器的 containers 数组平行的位置指定 Init 容器

每个 Pod 中可以包含多个容器, 应用运行在这些容器里面,同时 Pod 也可以有一个或多个先于应用容器启动的 Init 容器。

Init 容器与普通的容器非常像,除了如下两点:

  • 它们总是运行到完成。
  • 每个都必须在下一个启动之前成功完成。

如果 Pod 的 Init 容器失败,kubelet 会不断地重启该 Init 容器直到该容器成功为止。 然而,如果 Pod 对应的 restartPolicy 值为 “Never”,并且 Pod 的 Init 容器失败, 则 Kubernetes 会将整个 Pod 状态设置为失败。

为 Pod 设置 Init 容器需要在 Pod 规约中添加 initContainers 字段, 该字段以 Container 类型对象数组的形式组织,和应用的 containers 数组同级相邻。 参阅 API 参考的容器章节了解详情。

Init 容器的状态在 status.initContainerStatuses 字段中以容器状态数组的格式返回 (类似 status.containerStatuses 字段)。

和普通容器的不同之处

Init 容器支持应用容器的全部字段和特性,包括资源限制、数据卷和安全设置。

同时 Init 容器不支持 lifecyclelivenessProbereadinessProbestartupProbe, 因为它们必须在 Pod 就绪之前运行完成。

如果为一个 Pod 指定了多个 Init 容器,这些容器会按顺序逐个运行。 每个 Init 容器必须运行成功,下一个才能够运行。当所有的 Init 容器运行完成时, Kubernetes 才会为 Pod 初始化应用容器并像平常一样运行。

如何使用 Init 容器

因为 Init 容器具有与应用容器分离的单独镜像,其启动相关代码具有如下优势:

  • Init 容器可以包含一些安装过程中应用容器中不存在的实用工具或个性化代码。 例如,没有必要仅为了在安装过程中使用类似 sedawkpythondig 这样的工具而去 FROM 一个镜像来生成一个新的镜像。

  • 应用镜像的创建者和部署者可以各自独立工作,而没有必要联合构建一个单独的应用镜像。

  • 与同一 Pod 中的多个应用容器相比,Init 容器能以不同的文件系统视图运行。因此,Init 容器可以被赋予访问应用容器不能访问的 Secret 的权限。

  • 由于 Init 容器必须在应用容器启动之前运行完成,因此 Init 容器提供了一种机制来阻塞或延迟应用容器的启动,直到满足了一组先决条件。 一旦前置条件满足,Pod 内的所有的应用容器会并行启动。

  • Init 容器可以安全地运行实用程序或自定义代码,而在其他方式下运行这些实用程序或自定义代码可能会降低应用容器镜像的安全性。 通过将不必要的工具分开,你可以限制应用容器镜像的被攻击范围

http://www.lryc.cn/news/33538.html

相关文章:

  • RequestResponseBodyMethodProcessor
  • 函数的极限
  • dnf命令使用
  • CLIP CLAP
  • Debezium报错处理系列之五十二:解决Sql Server数据库安装后修改主机名导致sqlserver数据库实例名称没有修改从而无法设置CDC的问题
  • scratch老鹰捉小鸡 电子学会图形化编程scratch等级考试二级真题和答案解析2022年12月
  • 概率论小课堂:公理化过程(大数据方法解决问题的理论基础)
  • WOW64 IsWow64Process GetNativeSystemInfoWindows System32 SysWOW64
  • Spring Boot 3.0系列【10】核心特性篇之应用配置的高阶用法
  • Java int类型数值比较总结
  • Pyspark基础入门5_RDD的持久化方法
  • 汽车娱乐系统解决方案
  • Go语言结构体,这一篇就够了
  • 【python】各种排序算法代码大集合
  • K8S Pod健康检查
  • NFS服务器与CGI程序详解
  • 可视化项目管理,控制项目进度,项目经理需要做好以下工作
  • 海康工业相机使用教程
  • java开发手册之安全规约
  • python模块引入问题和解决方案_真方案不骗人
  • Read book Netty in action(Chapter X)--Unit Testing
  • Appium+Python连接真机、跳过登录页、Unexpected error while obtaining UI hierarchy问题
  • ES6模块化
  • 201809-3 CCF 元素选择器 满分题解(超详细注释代码) + 解题思路(超详细)
  • 证书拓展域(1)
  • 浅谈ChatGPT 和 对AI 的思考
  • NCRE计算机等级考试Python真题(十二)
  • Java并发类库提供的线程池有哪几种? 分别有什么特点?
  • 企业微信如何群发消息到客户群?
  • 【信号与系统笔记】第一章 绪论