码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • init container


    文章目录

      • 应用场景
      • 介绍
      • 示例
      • 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: busybox
        image: busybox:latest
        command:
        - wget
        - "-o"
        - "/work-dir/index.html"
        - http://kubernetes.io
        volumeMounts:
        - name: workdir
          mountPath: "/work-dir"
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80
        volumeMounts:
        - name: workdir
          mountPath: "/usr/share/nginx/html"
      dnsPolicy: Default
      volumes:
      - name: workdir
        emptyDir: {}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    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 和 应用容器

  • 相关阅读:
    java动态代理两种实现方式
    泽攸科技JS系列高精度台阶仪在半导体领域的应用
    利用EasyDL制作一个简单的图片识别小项目
    2024/4/3 IOday5
    痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(12)- 从SD/eMMC启动
    css中的盒模型box-sizing
    C/C++家族族谱管理系统
    char s[]和char *s的区别,数组和指针的,堆和栈指针的一些思考
    设计模式之道-模板方法模式
    java毕业设计Vue框架龙猫宠物交易平台源码+系统+数据库+lw文档+调试运行
  • 原文地址:https://blog.csdn.net/qq_43762191/article/details/126923231
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号