举例:如何将jar包容器化
方法一:将jar包和jdk环境打包进一个镜像中
缺点:每次更新都需要重新打包新的jar包
方法二:镜像里只做jdk环境,通过共享存储的方式将jar挂载到容器中,再执行启动命令
缺点:由于pod调度,需要单独维护一套网络存储系统
那有没有方法可以同时解决这两个问题呢?
init container会比spec.containers定义的用户容器先启动,并且严格按照定义顺序依次执行
容器设计模式:sidecar
通过在pod定义专门容器,来执行住业务容器需要的辅助工作
如:原本需要ssh进行执行的脚本 日志收集 debug应用 应用监控
优势: 将辅助功能同主业务容器解耦,实现独立发布和能力重用