docker compose 启动的项目如何切成 k8s podman - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
HashV2
V2EX    Kubernetes

docker compose 启动的项目如何切成 k8s podman

  •  
  •   HashV2 2023-12-07 16:31:56 +08:00 2760 次点击
    这是一个创建于 738 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前项目一直是 docker compose up -d 启动的,后面发现有很多权限上的问题,如何低成本切换成 k8s+podman ,最好是不用动代码

    目前 docker compose 里面服务有 7 个 前端、后端、pg 、redis 、mongo 、minio 、rabbitmq

    17 条回复    2024-01-04 13:18:09 +08:00
    dream4ever
        1
    dream4ever  
       2023-12-07 16:36:24 +08:00
    先说说你的具体需求,有时候你思考一番之后提出一个问题 X ,其实是为了解决背后的这个问题 Y ,但是很可能要解决 Y 并不一定需要解决问题 X 。
    ysicing
        2
    ysicing  
       2023-12-07 16:47:26 +08:00
    换个运行方式貌似也不能解决权限问题吧
    HashV2
        3
    HashV2  
    OP
       2023-12-07 17:02:11 +08:00
    @dream4ever 第一:我们有一个接口会 run 一些 sudo 命令 给容器加了 privileged=true, 怕会有安全风险
    第二:是容器之间的文件通信/传输问题,之前服务之间交互的时候有一个共享的文件夹,我是-v 映射过来的,然后另一个容器读取文件的时候没权限,我手动 chmod 后解决的,后面加了 minio 对象存储之后倒是规避了这个问题,但是看了一些文章之后总觉得 docker 的可靠性有些低,所以想切换成 podman
    wangbin11
        4
    wangbin11  
       2023-12-07 17:10:56 +08:00
    崩没崩,没蹦别动,崩了再说,找个大佬入职
    liuzhedash
        5
    liuzhedash  
       2023-12-07 17:16:10 +08:00
    @HashV2
    docker 可靠性低这个怎么说?
    看起来,文件权限 chmod 这些都已经被 minio 解决了,现在问题就是 privileged=true 这一个了?
    HashV2
        6
    HashV2  
    OP
       2023-12-07 17:24:19 +08:00
    @liuzhedash 未雨绸缪吧,看了一些文章

    一个就是上面那个问题怕有安全风险
    二是守护进程的问题,docker 挂了就全挂了,podman 没有守护进程,给人感觉上 docker 的可靠性就低了
    bt7vip
        7
    bt7vip  
       2023-12-07 20:40:05 +08:00 via Android
    K8s 现在分离成使用接口调度容器,如果只是迁移 k8s ,有完善的文档参考。
    如果是为了 podman 的非运行 root 容器,需要自己配置一番,无守护进程的好处是真的容器封装成一个 server ,就像管理 server 那样操作容器,坏处是相对成熟的 docker 配置难度提升。
    582033
        8
    582033  
       2023-12-08 10:03:41 +08:00
    切 k8s 对你自己有啥积极作用么?能加薪或者保狗头那就切;不然能稳定跑着就别动它
    julyclyde
        9
    julyclyde  
       2023-12-08 11:37:56 +08:00
    @HashV2

    sudo 和 priviledged 没什么关系啊,容器内 sudo 那是容器内的事

    容器之间共享文件,你应该考虑一下是不是设计有错误
    一般不提倡用文件系统做 IPC ,而应该用流式的通信技术,存在“顺序”和“流量控制”的概念


    古代版本 docker 是直接管理容器的;后来改成 dockerd+containerd+containerd-shim 三层了,所以不存在 docker 挂了就全挂了这个问题
    wbuntu
        10
    wbuntu  
       2023-12-08 17:34:40 +08:00
    感觉没有必要,只是换了一种方式运行服务,而且 podman 也并没有 docker 可靠,你的问题不是更换成 k8s+podman 可以解决的
    julyclyde
        11
    julyclyde  
       2023-12-09 11:54:57 +08:00
    @wbuntu 那么,podman 没有 docker 可靠的结论又是怎么推断出来的呢?
    wbuntu
        12
    wbuntu  
       2023-12-10 10:46:11 +08:00
    @julyclyde 我们的生产环境在大量使用 podman 相关的工具链......从当前的时间点看 podman 的工具链成熟度还没有达到 docker 的水平,很多时候要换回来使用 docker
    julyclyde
        13
    julyclyde  
       2023-12-10 10:48:38 +08:00
    @wbuntu 嗯,那你应该列举这个理由啊,这个理由连我都同意(我遇到了 podman-composer 的问题)
    但如果你不说出来,感觉就是无脑黑了
    wbuntu
        14
    wbuntu  
       2023-12-10 10:55:05 +08:00
    @julyclyde 有很多一言难尽的地方,比如对操作系统支持不全,需要比较新的操作系统才能用上 4.0 ,构建出的镜像默认是 oci 格式,多架构镜像构建没有类似 docker 的 buildx ,很多时候客户预期的是 docker 的使用体验,但是 podman 没有完全满足。
    julyclyde
        15
    julyclyde  
       2023-12-10 10:56:48 +08:00
    @wbuntu 不太明白这个 4.0 的兼容问题是咋回事

    OCI 格式我觉得没啥问题啊……那是客户预期的错误

    podman 我用的少,还没遇到这么多糟心事呢。唉
    wbuntu
        16
    wbuntu  
       2023-12-10 11:07:23 +08:00
    @julyclyde 用一用 openshift container platform 就可以感受下,如果是上红帽全家桶会觉得用起来还不错
    winson030
        17
    winson030  
       2024-01-04 13:18:09 +08:00
    如果你只是想将现有的服务在 k8s 集群上跑起来,那么你需要考虑下面的问题。

    1. 数据卷如何处理? 存在宿主机还是用 nfs ?
    2. 网络如何处理?镜像除了前端还有哪些需要暴露到公网的?
    3. 配置文件如何处理?
    4. 密码,证书之类的信息如何处理?
    5. 环境变量怎么处理?

    你可以试试使用 kcompose 将 docker compose 转换为 k8s 能用的 yaml 文件。
    k8s 的操作逻辑跟 docker compose 不太一样,需要有针对性地进行修改。镜像倒是不用变。
    k8s 麻烦的话,可以试试 docker swarm 集群。只需要在原有的 compose 文件里加入一些代码,
    然后 docker stack up 就可以了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5346 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 38ms UTC 06:39 PVG 14:39 LAX 22:39 JFK 01:39
    Do have faith in what you're doing.
    ubao msn 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