zoukankan      html  css  js  c++  java
  • kubernetes---Init-Container

    用于在启动应用容器之前 启动一个或多个“初始化”容器,完成应用容器所需的预置条件。init container与应用容器本质上是一样的,但它们是仅运行一次就结束的任务,并且必须在成功执行完成后,系统才能继续执行下一个容器。根据pod的重启策略,当init container执行失败,在设置了RestartPolicy=Never时,pod将自动启动失败;而设置RestartPolicy=Always时,Pod将会被系统自动重启

    init container与应用容器的区别

    简单的说明一下两者的区别:

    • init container的运行方式与应用容器不同,它们必须先于应用容器执行完成,当设置了多个init container时,将按顺序逐个运行,并且只有前一个init container运行成功后才能运行后一个init container。当所有init container都成功运行后,kubernetes才会初始化pod的各种信息,并开始创建和运行应用容器。
    • 在init container的定义中也可以设置资源限制、volume的使用和安全策略等等。但资源限制的设置与应用容器不同:
      • 如果多个init container都定义了资源请求/资源限制,则取最大的值作为所有init container的资源请求值/资源限制值。
      • pod的有效资源请求值/资源限制值取以下二者中的较大值:
        • 所有应用容器的资源请求值/限制值之和
        • init container的有效资源请求值/限制值
      • 调度算法将基于pod的有效资源请求值/限制值进行计算,也就是说init container可以为初始化操作预留系统资源,即使后续应用容器无须使用这些资源。
      • pod的有效QoS等级适用于init container和应用容器。
      • 资源配额和限制将根据pod的有效资源请求/限制,与调度机制一致。
    • init container不能设置readinessProbe探针,因为必须在它们成功运行以后才能继续运行pod中定义的普通容器。将pod重启时,init container将会重新运行,常见的pod重启场景如下:
      • init container的镜像被更新时,init container将重新运行,导致pod重启,仅更新应用容器的镜像只会使得应用容器被重启。
      • pod的infrastructure容器更新时,pod将会重启。
      • 或pod中的所有应用容器都终止了,并且RestartPolicy=Always时,则pod将会重启。
  • 相关阅读:
    uniGUI中Cookies使用中文汉字的方法(使用EncodeString函数编码)
    Delphi中accesss实现树形结构查询系统(一次性生成比较方便)
    delphi的万能数据库操作
    Delphi汉字简繁体转换代码(分为D7和D2010版本)
    “千千静听”滚动标题栏,非常简单!(时间器控制窗口标题栏文字,然后赋值给Application.Title)
    js 创建对象
    SkyWalking+SkyApm-dotnet分布式链路追踪系统
    可靠的连接池
    调整数组顺序使奇数位于偶数前面
    三种「高可用」架构
  • 原文地址:https://www.cnblogs.com/li-tian-jun/p/11414034.html
Copyright © 2011-2022 走看看