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

【云原生】kubernetes在Pod中init容器的作用和使用

目录

Pod 中 init 容器

1 init 容器特点

2 使用 init 容器


Pod 中 init 容器

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

1 init 容器特点

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

  • 它们总是运行到完成。如果 Pod 的 Init 容器失败,kubelet 会不断地重启该 Init 容器直到该容器成功为止。 然而,如果 Pod 对应的 restartPolicy 值为 "Never",并且 Pod 的 Init 容器失败, 则 Kubernetes 会将整个 Pod 状态设置为失败。

  • 每个都必须在下一个启动之前成功完成。

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

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

  • Init 容器支持应用容器的全部字段和特性,包括资源限制、数据卷和安全设置。 然而,Init 容器对资源请求和限制的处理稍有不同。

2 使用 init 容器

官网地址: Init 容器 | Kubernetes

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

apiVersion: v1
kind: Pod
metadata:name: init-demo
spec:containers:- name: myapp-containerimage: busybox:1.28command: ['sh', '-c', 'echo The app is running! && sleep 3600']initContainers:- name: init-myserviceimage: busybox:1.28command: ['sh', '-c', 'echo init-myservice is running! && sleep 5']- name: init-mydbimage: busybox:1.28command: ['sh', '-c', 'echo init-mydb is running! && sleep 10']
  • 查看启动详细

$ kubectl describe pod init-demo
​
# 部分结果
Events:Type    Reason     Age    From               Message----    ------     ----   ----               -------Normal  Scheduled  2m16s  default-scheduler  Successfully assigned default/init-demo to k8s-node2Normal  Pulling    2m16s  kubelet            Pulling image "busybox:1.28"Normal  Pulled     118s   kubelet            Successfully pulled image "busybox:1.28" in 17.370617268s (17.370620685s including waiting)Normal  Created    118s   kubelet            Created container init-myserviceNormal  Started    118s   kubelet            Started container init-myserviceNormal  Pulled     112s   kubelet            Container image "busybox:1.28" already present on machineNormal  Created    112s   kubelet            Created container init-mydbNormal  Started    112s   kubelet            Started container init-mydbNormal  Pulled     101s   kubelet            Container image "busybox:1.28" already present on machineNormal  Created    101s   kubelet            Created container myapp-containerNormal  Started    101s   kubelet            Started container myapp-container

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

相关文章:

  • springboot+vue分页
  • 【linux】ssh 和adb connect区别
  • iPhone手机怎么恢复出厂设置(详解)
  • 灵活利用ChatAI,减轻工作任务—语言/翻译篇
  • 【肌电图信号分析】通道肌电图并查找收缩周期的数量、振幅、最大值和持续时间(Matlab代码实现)
  • python 定时器,如何进行周期性的函数运行、状态检查,百分比计算?
  • 无涯教程-Perl - fcntl函数
  • docker 命令解析
  • Map集合 实体类对象的相互转换
  • 用chatGPT从左右眼图片生成点云数据
  • dy六神参数记录分析(立秋篇)
  • 微信-jssdk使用
  • guava-retry使用笔记
  • P1226 【模板】快速幂 | 取余运算
  • 常用开源的弱口令检查审计工具
  • 云监控插件cloudmonitor安装保姆级教程
  • 借用和引用
  • WPF上位机9——Lambda和Linq
  • 从0到1搭建uniapp
  • 安全杂记 - Linux文本三剑客之awk
  • Android 开发者选项日志存储路径
  • jupyter lab build失败,提示需要安装版本>=12.0.0的nodejs但其实已从官网安装18.17.0版本 的解决方法
  • 【set】个人练习-Leetcode-817. Linked List Components
  • Linux IPIP隧道连通两个局域网
  • 华为QinQ技术的基本qinq和灵活qinq 2种配置案例
  • python爬虫1:基础知识
  • 【FAQ】安防监控视频EasyCVR平台分发的FLV视频流在VLC中无法播放
  • python爬虫2:requests库-原理
  • 纹理贴图和渲染
  • BLIP2