什么情况下一个 Pod 会包含多个 Container 呢? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fatyoung
V2EX    问与答

什么情况下一个 Pod 会包含多个 Container 呢?

  •  
  •   fatyoung 2024-03-20 17:26:05 +08:00 1664 次点击
    这是一个创建于 571 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近恶补了一下 k8s 的相关知识,有个疑惑:
    java web 应用场景下,订单服务是一个 Service ,会员服务是一个 Service ,两个 Service 下面包含多个 Pod 。Pod 是一组 Container 的集合,我的理解是,只需要一个 Container 就足够了吧?这个 Container 就是一个 jvm 用户进程。(除非我需要一个守护进程来维护锁或者啥的?)

    实际生产环境中,每一个服务的 Pod 是不是一般都是只有一个 Container 在跑?
    21 条回复    2024-03-21 14:38:06 +08:00
    fcfangcc
        1
    fcfangcc  
       2024-03-20 17:34:58 +08:00   1
    实际生产环境中,每一个服务的 Pod 是不是一般都是只有一个 Container 在跑?

    是的,一般都只有一个。

    多个的话,如果用了 service mesh 那么会起一个 sidecar 用来代理主 container 的流量,这个时候就有 2 个
    fatyoung
        2
    fatyoung  
    OP
       2024-03-20 17:36:38 +08:00
    @fcfangcc 好的谢谢
    ZeekChatCom
        3
    ZeekChatCom  
       2024-03-20 17:37:11 +08:00
    nginx + php-fpm 分 2 个 container 跑的
    fatyoung
        4
    fatyoung  
    OP
       2024-03-20 17:43:43 +08:00
    @ramirezyolis808 #3 请教下老哥,这样子做的原因是什么呢?
    wangzi168
        5
    wangzi168  
       2024-03-20 17:44:03 +08:00 via iPhone
    一个 pod 里面还可以有加解密的 container 、网关 container 等等。业务的 container 只需要关系自己的业务就好
    ZeekChatCom
        6
    ZeekChatCom  
       2024-03-20 17:45:59 +08:00
    @fatyoung 单纯地不想在同一个容器中存在不同类的进程。这有违容器化的初衷吧。
    ZeekChatCom
        7
    ZeekChatCom  
       2024-03-20 17:46:33 +08:00
    @wangzi168 内敛原则,自己的依赖自己解决。
    fatyoung
        8
    fatyoung  
    OP
       2024-03-20 17:56:35 +08:00
    @wangzi168 #5 网关不是通过 Ingress 就可以实现吗? 假设不通过 Ingress 实现,那网关服务是不是应该单独一个 Pod?
    fatyoung
        9
    fatyoung  
    OP
       2024-03-20 18:00:33 +08:00
    @ramirezyolis808 #6 这点我也疑惑。。
    homolabby
        10
    homolabby  
       2024-03-20 19:00:44 +08:00
    监控的 sidecar.,serviceesh 的 sidecar 或者 CSI 的 sidecar ,尤其是 CSI 的 sidecar ,如果不使用 sidecar ,使用 mount pod 模式的话,csi 的爆炸半径是所有使用这个 CSI 的 pod ,所有。所以,csi 作为 sidecar 模式是非常必须的。我不是很清楚贵司这方面是如何处理的,是无状态,不写,只读取数据吗? @fcfangcc 请问是不是没有使用 CSI 啊?请指点一下,谢谢您
    mr0joker
        11
    mr0joker  
       2024-03-20 19:07:42 +08:00
    有些业务场景可以使用边车模型,也就是上面提到过的一个 pod 里带两个 container
    gabon
        12
    gabon  
       2024-03-20 21:04:51 +08:00 via iPhone
    我们用 sidecar 做流量转发(跨协议)、监控等
    isno
        13
    isno  
       2024-03-20 21:18:23 +08:00   1
    https://www.thebyte.com.cn/container/orchestration.html#%E5%AE%B9%E5%99%A8%E7%9A%84%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-sidecar

    今晚能写完吧,可以明天再看。

    实际生产环境中,一个 Pod 一般有多个容器,比如 service-mesh 中的 envoy 容器,日志收集的容器,监控的容器。
    nthin0
        14
    nthin0  
       2024-03-20 22:02:12 +08:00
    我们一个 pod 下有一个业务 container 和一个 filebeat container
    sujin190
        15
    sujin190  
       2024-03-20 22:05:17 +08:00 via Android
    @fatyoung 一个特点就是同一个 pod 下边的不同容器是在同一个网络空间,此外内存和 cpu 等资源限制也是共享的
    wqferan
        16
    wqferan  
       2024-03-20 23:24:39 +08:00   1
    @homolabby 从应用层面, 一般是要做到无状态方便横向扩展, 有状态数据都写到数据库里去, 有临时目录的需求用 emptyDir
    CSI 早期版本应该都在 kube controller 里, 现在抽出来一般也是注册为 controller, 应该都是多实例单主运行,这个服务挂掉一般也是不影响已挂载的业务, 把这个东西注入到有状态容器里感觉没啥必要
    另外 k8s 开发手册里也有 csi sidecar,这几个 sidecar 是和 apiserver 交互的抽象, 让存储商专注驱动开发
    whileFalse
        17
    whileFalse  
       2024-03-21 02:03:41 +08:00 via Android
    用 aws ecs ,外挂监控组件、代理组件、日志组件什么的。
    fcfangcc
        18
    fcfangcc  
       2024-03-21 09:09:35 +08:00   1
    @homolabby 我们是除了 mesh 的是 sidecar 模式。其他监控,日志收集等的容器都是 node 级别的,一个 node 上部署一个 StatefulSet 或 Deployment 来管理该 node 下所有的 pod 。你说的 csi 我不太了解
    T4b918jJOXdkJ3h8
        19
    T4b918jJOXdkJ3h8  
       2024-03-21 10:26:53 +08:00
    @ramirezyolis808 哥们上班了
    ZeekChatCom
        20
    ZeekChatCom  
       2024-03-21 14:36:27 +08:00 via iPhone
    @gzldc 今天休息
    T4b918jJOXdkJ3h8
        21
    T4b918jJOXdkJ3h8  
       2024-03-21 14:38:06 +08:00
    @ramirezyolis808 你这公司不错
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2719 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 12:02 PVG 20:02 LAX 05:02 JFK 08:02
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86