恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

11-Init Container 与 Sidecar

  • 首页
  • 资讯中心
  • /
  • 11-Init Container 与 Sidecar

相关资讯

Unity URP自定义后处理:RenderFeature实战与扫描线效果实现 2026/8/5 6:01:52
游戏角色动作重定向技术:跨作品骨骼动画转换实战指南 2026/8/2 17:13:37
基于图莫斯的CAN UDS升级上位机-LabVIEW版本(十六):从刷写到诊断的功能扩展 2026/8/2 17:13:38

最新资讯

蚂蚁百灵Ling-3.0-tiny本地部署指南:轻量级TTS与语音克隆实践
医学论文解读:Clinically-Inspired Multi-Agent Transformers for Disease Trajectory Forecasting From Multimod
SATA OOB信号解析:物理层通信的底层暗语与故障排查实战
深入理解Linux伪终端PTY原理与应用
深入解析缺页中断与一般中断:原理、区别与性能调优实战
深入解析LLM解码策略:从贪婪搜索到Top-p采样的生成控制艺术

今日推荐

《人工智能导论:深度学习大模型基础》全套PPT课件2026
9.5 技术债务的重构:何时该动一次大手术
如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

本周热门

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁
如何快速生成中国车牌图片:Python开源工具完整指南
当 LLM 遇见大文档:主流开源项目如何处理上下文超限

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

11-Init Container 与 Sidecar

发布时间:2026/8/11 8:51:44
11-Init Container 与 Sidecar Init Container 与 Sidecar概念引入到目前为止你创建的 Pod 都只有一个容器。单容器就像一人工作室——简单但能力有限。生产环境中Pod 里经常跑多个容器主要有两种模式Init Container运行完就退出完成后再启动主容器像装修队——装完就走业主再入住Sidecar和主容器一起运行提供辅助功能像保安——24 小时和你一起提供保护Sidecar 模式App 容器一直运行Sidecar: 日志收集一起运行Sidecar: Envoy 代理一起运行Init Container 模式完成退出完成退出Init: wait-for-dbInit: run-migrationApp 容器启动单容器 PodApp原理讲解Init Container按顺序执行的前置任务Init Container 的关键特性特性说明顺序执行多个 Init Container 按定义顺序依次执行前一个完成才启动下一个必须成功Init Container 必须成功退出exit 0否则 Pod 一直处于Init:Error状态独立镜像可以用和主容器完全不同的镜像主容器用 Node.jsInit 用 busybox 就够了独立资源Init Container 有自己的 volume 挂载和资源请求apiVersion:v1kind:Podmetadata:name:app-with-initspec:initContainers:# Init 1: 等待数据库就绪-name:wait-for-dbimage:busybox:1.36command:[sh,-c,until nslookup db-svc; do echo waiting...; sleep 2; done]# Init 2: 执行数据库迁移-name:db-migrateimage:myapp:latestcommand:[npm,run,migrate]containers:-name:appimage:myapp:latestports:-containerPort:3000✅ DB 可达✅ 迁移完成❌ 一直连不上Pod 创建Init 1: wait-for-db⏳ nslookup 循环等待Init 2: db-migrate 跑 SQL migrationApp 容器启动 服务就绪Init:ErrorPod 不会启动 AppSidecar辅助服务的容器Sidecar 和主容器同时运行通过共享资源volume、network协作apiVersion:v1kind:Podmetadata:name:app-with-sidecarspec:volumes:-name:logsemptyDir:{}containers:# 主容器写日志-name:appimage:nginx:1.27volumeMounts:-name:logsmountPath:/var/log/nginx# Sidecar收集并转发日志-name:log-shipperimage:busybox:1.36command:[sh,-c,tail -f /logs/access.log]volumeMounts:-name:logsmountPath:/logsPod: app-with-sidecar共享 Volume (logs)emptyDirApp 容器 (nginx)写入 access.logSidecar (log-shipper)读取 转发用户请求日志平台(Elasticsearch/Loki)Init Container vs Sidecar vs 多容器对比维度Init ContainerSidecar普通多容器运行时机主容器之前和主容器同时和主容器同时退出行为必须成功退出一直运行一直运行典型用途等依赖、初始化、迁移日志收集、代理、监控紧密耦合的服务生命周期执行完就结束和 Pod 同生命周期和 Pod 同生命周期经典场景场景用什么为什么等数据库就绪再启动Init Container阻塞式等待不需要一直跑运行数据库 migrationInit Container跑完一次就行从 Vault 拉取密钥Init Container启动前拉一次就够了收集应用日志Sidecar需要持续读取代理/服务网格EnvoySidecar代理所有进出流量健康检查上报Sidecar持续向监控系统汇报动手实验配套实验位于docs/labs/beginner/init-container-sidecar/本实验模拟Init Container 等待依赖就绪 → Sidecar 持续收集日志。步骤 1部署实验环境cddocs/labs/beginner/init-container-sidecarbashsetup.sh步骤 2观察 Init Container 执行顺序# 观察 Pod 状态变化kubectl get pods-w# 你会看到Pending → Init:0/2 → Init:1/2 → Init:2/2 → PodInitializing → Running# 查看 Init Container 日志kubectl logs app-with-init-sidecar-cwait-for-svc kubectl logs app-with-init-sidecar-cinit-config步骤 3验证 Sidecar 日志收集# 主容器产生一些访问日志kubectlexecapp-with-init-sidecar-capp --curl-slocalhost# 查看 Sidecar 收集到的日志kubectl logs app-with-init-sidecar-clog-collector步骤 4清理bashteardown.sh自检问题[基础]Init Container 和普通 Container 的启动顺序有什么区别如果 Init Container 失败了 Pod 会怎样[理解]以下场景分别适合 Init Container 还是 Sidecar① 数据库建表 ② 实时日志收集 ③ 从外部拉取配置文件到共享卷 ④ 代理所有出站流量[应用]你的应用需要等 Redis 启动后才能运行还需要在启动前执行数据预热脚本。Pod 里应该有几个 Init Container几个普通 Container查看答案Init Container 先于普通 Container 执行且多个 Init Container 按定义顺序依次执行。只有所有 Init Container 都成功退出后普通 Container 才会启动。如果 Init Container 失败exit ! 0Pod 会一直处于Init:Error状态并不断重试主容器永远不会启动。① Init Container跑一次建表脚本就行② Sidecar需要持续 tail 转发③ Init Container拉一次挂到共享卷即可④ Sidecar作为代理持续运行。需要2 个 Init Container 1 个普通 Container。Init 1wait-for-redisnslookup 循环等 Redis 就绪。Init 2data-warmup执行预热脚本。普通 Container你的应用本身。预热脚本因为依赖 Redis所以需要放在wait-for-redis之后。 本文来自 K8s Guide —— 开源免费的 Kubernetes 中文学习指南️ 初学者轨道 面试轨道从零基础到拿 Offer 一站式覆盖 每篇文章配套 Kind 实验脚本本地一键运行 本文源码docs/beginner/20-gateway-api.md⭐ 如果对你有帮助欢迎 Star github.com/callmebg/k8s-guide

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号