Redian新闻
>
initContainer多场景应用

initContainer多场景应用

公众号新闻


一、initContainer工作原理

初始化容器是在pod的主容器启动之前要运行的容器,主要是做一些 主容器的前置工作,它具有两大特征:

  • 1、初始化容器必须运行完成直至结束,若某初始化容器运行失败,那么kubernetes需要重启它直到成功完成;

  • 2、初始化容器必须按照定义的顺序执行,当且仅当前一个成功之后,后面的一个才能运行,一旦失败,如果 Pod 对应的 restartPolicy 值为 Never,它不会重新启动;

初始化容器有很多的应用场景,下面列出的是最常见的几个:

  • 提供主容器镜像中不具备的工具程序或自定义代码;

  • 初始化容器要先于应用容器串行启动并运行完成,因此可用于延后应用容器的启动直至其依赖的条件得到满足;

二、initConatiner数据共享

需求:假设要以主容器来运行nginx,但是要求在运行nginx之前需要拿到最新的index主页;

创建pod-initcontainer.yaml,内容如下:

apiVersionv1
kindPod
metadata:
namephp-updated
spec:
containers:
namephp
  imagephp:7-fpm
  volumeMounts:
  - namedir
    mountPath/var/www/html/
initContainers:
nameinstall
  imagebusybox
  volumeMounts:
  - namedir
    mountPath/var/www/html/
  command:
  - wget
  - "-O"
  - "/var/www/html/index.php"
  - https://gitee.com
volumes:
namedir
  emptyDir: {}

启动成功后,登陆进PHP容器,可以查看到/var/www/html/目录下的index.html文件为init container所生成。

三、initConatiner前置数据操作

初始化容器和PortStart的区别

PostStart:依赖主应用的环境,而且并不一定先于Command运行

InitContainer:不依赖主应用的环境,可以有更高的权限和更多的工具,一定会在主应用启动之前完成。

Init 容器不支持 lifecycle、livenessProbe、readinessProbe 和 startupProbe。

需求:

假设 主容器在运行前,需要依赖一个B应用,只有B应用成功启动后此容器才可以正常运行;

创建pod-initcontainer22.yaml,内容如下:

apiVersion: apps/v1
kind: Deployment
metadata:
labels:
  run: my-app
name: my-app
spec:
replicas: 2
selector:
  matchLabels:
    run: my-app
template:
  metadata:
    labels:
      run: my-app
  spec:
    restartPolicy: Always
    containers:
    - name: myapp-container
      image: busybox:1.28
      command: ['sh', '-c', 'echo The app is running! && sleep 3600']
    initContainers:
    - name: init-myappb
      image: busybox:1.28
      command: ['sh', '-c', "until nslookup myappb.$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace).svc.cluster.local; do echo waiting for myappb; sleep 2; done"]

创建测试所用的svc:

apiVersion: v1
kind: Service
metadata:
name: myappb
spec:
ports:
- protocol: TCP
  port: 80
  targetPort: 9377

为创建svc前,initcontainer一直处于等待,可以从console端输出日志看到其状态,一旦创建svc,initcontainer探测到svc正常后,即启动后续的mainContainer。

(版权归原作者所有,侵删)


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
去Costco要带ID!Costco开始严查借会员卡,自助结账也要确认本人M教授和他的妻子最后的故事题同学凤凰湖樱花照(中华通韵)「关怀医疗」获数亿元C轮融资,加速膜的全场景应用布局|36氪首发𝐂𝐚𝐥𝐧𝐢𝐊𝐞𝐚𝐧双皮奶内衣裤,软弹有度,上身0束缚~专访金坤生物首席科学家乔长晟:合成生物原料拓宽多场景使用至关重要购物|Costco自产品牌Kirkland为啥这么这么物美价廉?为你揭晓Costco的七个成功小秘诀~Reverse Alchemy: The Chinese Emperor Who Turned Silver Into Tin很多华人去Costco都这么干!然而,Costco出手了…连接内容场景与货架场景,为什么是取得新增长的底层逻辑?Agustín Hernández:中美洲建筑背景下的未来主义巨构意大利佛罗伦萨(Florence),街头随拍Costco7月零食大赏!照着买,再也不用羡慕别人家的costco了!太省了!Costco折扣只一天,直采直邮更省钱,COSTCO近期折扣大盘点来啦GPT-4.5来了!地表最强Code Interpreter与Midjourney联动,5分做出大片 | 附保姆级攻略长周末出门不白跑!超市商场景点营业表:Costco这两天不开门!「GPT-4.5」来了!地表最强Code Interpreter与Midjourney联动,5分做出大片|附保姆级攻略One Innovation ultra-large container carrier docks at XM PortChina Proposes To Regulate AI-Generated Content国际青少年创新创业大赛! International Youth Innovation&Entrepreneur ContestCostco爆买折扣来了!少见的大包蔓越莓干打折了!尝遍COSTCO,美国零食新活动还有饼干蛋卷咖啡…Base薪资$250K!Jane Street (US) 开放2024 Winter Internship华仪宁创:突破直接电离质谱技术,开发精准医疗、食品安全、公共安全多场景质谱仪别再试!女子Costco购物「被终生禁买」礼品卡也将「无效」Costco严打这行为!想知道史上最最最好评的Costco食品吗?快来一起看看来自Costco粉丝的选择!开心周报(九)柏林工大也有自己的Döner店了!什么?Costco会员大涨价?这年头Costco都开始涨价了?赚翻!女子将Costco商品3倍价格卖出!本周Costco优惠信息ICLR 2023|场景三维重建新SOTA!基于3D Transformer的单目场景重建Costco有机草莓恐携有甲肝病毒?爱逛Costco必看!破局之作:首部开源 AIGC 软件工程应用电子书《构筑大语言模型应用:应用开发与架构设计》腰疼【𝐂𝐚𝐥𝐧𝐢𝐊𝐞𝐚𝐧双皮奶无痕内裤】49元三条!巨巨巨好穿 !!简直就是辣妹顶配,食品级冰箱收纳盒【一日团】会计师Accountant (General)拿下澳大利亚186DE绿卡签证成功案例,移民方案选得好生活没烦恼!
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。