文章目录

  • 应用场景
  • 介绍
  • 示例
  • init container 与普通应用容器区别
    • init container 中的资源请求/限制

应用场景

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

介绍

init container 与应用容器在本质上是一样的,但是它们仅是运行一次就结束的任务,并且必须在成功运行完成后,系统才能继续执行下一个容器。
init container 的重启策略建议设置为 OnFailure。


示例

下面是一个以 Nginx 应用为例,在启动 Nginx 之前,通过初始化容器 busybox 为 Nginx 创建一个 index.html 主页文件,这里为 busybox 和Nginx 设置了一个共享的 Volume,以供 Nginx 访问 init container 设置的 index.html。

apiVersion: v1
kind: Pod
meatdate:name: nginx
spec:initContainers:- name: busyboximage: busybox:latestcommand:- wget- "-o"- "/work-dir/index.html"- http://kubernetes.iovolumeMounts:- name: workdirmountPath: "/work-dir"containers:- name: nginximage: nginxports:- containerPort: 80volumeMounts:- name: workdirmountPath: "/usr/share/nginx/html"dnsPolicy: Defaultvolumes:- name: workdiremptyDir: {}

init container 与普通应用容器区别

1)init container 必须先于应用容器执行完成,当设置了多个 init container 时,将按照顺序逐个执行,并且只有前一个 init container 执行成功了才能运行下一个。
2)在 init container 的定义中也可以设置资源限制、Volume 的使用和安全策略等
3)init container 不能设置 readinessProbe 探针。

init container 中的资源请求/限制

1)如果多个 init container 都设置了资源请求/限制,则以最大的为准
2)如果上一条存在,则 Pod 中的最大资源请求/限制为:所有普通容器资源请求/限制之和和上面的大的为准
3)依据上两条,所以 init container 可以为初始化操作预留系统资源,即使后续容器无需使用这些资源
4)Pod 的有效 QoS 等级适用于 init container 和 应用容器

init container相关推荐

  1. k8s 查看mysql 日志_k8s 使用 Init Container 确保依赖的服务已经启动

    k8s 使用 Init Container 确保依赖的服务已经启动 Intro 最近 helm 3 正式发布了,dotnetcore 3.1 也正式发布了,最近打算把我的活动室预约项目做一个升级,项目 ...

  2. ABAP和Go语言的初始化操作, Kubernetes的Init Container

    ABAP Go 作用同上: Kubernetes Init Container在所有容器运行之前执行(run-to-completion),常用来初始化配置. YMAL文件里的具体用法: 要获取更多J ...

  3. k8s 使用 Init Container 确保依赖的服务已经启动

    k8s 使用 Init Container 确保依赖的服务已经启动 Intro 最近 helm 3 正式发布了,dotnetcore 3.1 也正式发布了,最近打算把我的活动室预约项目做一个升级,项目 ...

  4. Kubernetes Init Container

    Kubernetes Init Container 在很多场景中,应用在启动之前都需要进行如下初始化操作. 等待其他关联组件正确运行(例如数据库或某个后台服务). 基于环境变量或配置模板生成配置文件. ...

  5. linux container容器技术框架性理解

    我对container原理的一些理解(基于linux kernel 2.6.38) by kin 2011.04.17 ======================================== ...

  6. 容器编排技术 -- Init 容器

    容器编排技术 -- Init 容器 1 理解 Init 容器 1.1 与普通容器的不同之处 2 Init 容器能做什么? 2.1 示例 2.2 使用 Init 容器 3 具体行为 3.1 资源 3.2 ...

  7. HPA monitoring cpu utilization fails for deployments which have init containers

    HPA monitoring cpu utilization fails for deployments which have init containers 1. 背景 2. 环境 3. 问题 4. ...

  8. Swing 实现聊天系统 私发与群发

    该系统使用的了socket.swing相关知识,实现了一个简单的群聊和私聊的系统. 1.程序界面功能展示 服务端swing界面展示 客户端服务展示 用户上线与发送消息客户端与服务端 私发消息 相关代码 ...

  9. jQuery EasyUI API 中文文档 - DataGrid 数据表格

    扩展自 $.fn.panel.defaults ,用 $.fn.datagrid.defaults 重写了 defaults . 依赖 panel resizable linkbutton pagin ...

最新文章

  1. 《精通 ASP.NET MVC 3 框架(第三版)》----第2章 准备工作 2.1 准备工作站
  2. arguments don‘t support automatic differentiation, but one of the arguments
  3. 介绍importlib
  4. Tomcat 教程之快速入门
  5. python激活虚拟环境source不是内部或外部_激活虚拟环境的问题
  6. 防范攻击 加强管控 - 数据库安全的16条军规
  7. sql文件建立mysql库_使用.SQL文件创建MySQL数据库
  8. 【IDEAEclipse】4、IntelliJ IDEA上操作GitHub
  9. Android中AMS工作原理,Android AMS启动详解
  10. 【Django 2021年最新版教程17】数据库操作 models 存在更新 不存在新建update_or_create
  11. Luogu1712 [NOI2016] 区间
  12. 小米路由器 charles无法抓包
  13. 我的世界java版如何加披风_我的世界正版披风怎么换
  14. 计算机的次要功能,FRM考试时所用计算器的操作指南
  15. Mugeda(木疙瘩)H5案例课—拍拍员工被玩坏了-岑远科-专题视频课程
  16. Visual Studio调用约定 __cdecl、__stdcall和__fastcall
  17. MPLS-虚拟专用网络
  18. Cheat Enginee(CE)的详细使用指南~包含下载安装教程以及核心功能讲解
  19. fanyibishe
  20. 淘宝居然还有卖代码的

热门文章

  1. 当游戏直播也要授权的背后:利益之争让各路人马杀红眼
  2. 2.Docker入门到精通—常用命令
  3. python 写入文件后读取为空的问题
  4. uniapp选择图片裁剪,上传到服务器
  5. Win10桌面右键,显示设置报错,解决办法
  6. 无限法则无法更新服务器,无限法则不支持32为客户端怎么办_无限法则不支持32为客户端解决办法_玩游戏网...
  7. Notion AI入门教程
  8. java计算机毕业设计员工培训管理系统源码+数据库+系统+lw文档+部署
  9. 华为手机linux多屏协同,华为MateBook D Linux版开卖 支持多屏协同与智慧互传
  10. 解决死锁之路(终结篇) - 再见死锁