你们都是怎么维护多个代码服务器的 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Ptu2sha
V2EX    PHP

你们都是怎么维护多个代码服务器的

  •  
  •   Ptu2sha 2021-04-10 19:09:52 +08:00 5851 次点击
    这是一个创建于 1674 天前的主题,其中的信息可能已经有所发展或是发生改变。
    除了 rsync 还有 k8s
    还有是吗简单的方案
    25 条回复    2021-04-12 13:44:21 +08:00
    iBugOne
        1
    iBugOne  
       2021-04-10 19:20:15 +08:00 via Android
    git push 直接部署
    eason1874
        2
    eason1874  
       2021-04-10 19:31:53 +08:00
    脸书以前有一篇文章介绍他们怎么滚动部署 PHP 代码,把部署时间从几天缩短到十几分钟,可以去找来看看。
    LanLiang
        3
    LanLiang  
       2021-04-10 20:23:26 +08:00
    docker 和 docker-compose
    kennylam777
        4
    kennylam777  
       2021-04-10 20:30:50 +08:00
    - docker-compose
    多 - k8s cluster
    Ansen
        5
    Ansen  
       2021-04-10 21:48:46 +08:00 via iPhone
    ansible
    chenqh
        6
    chenqh  
       2021-04-10 21:58:46 +08:00
    @kennylam777 单机 docker-compose? 怎么平滑升级?
    SjwNo1
        7
    SjwNo1  
       2021-04-10 22:05:37 +08:00
    swarm
    dzdh
        8
    dzdh  
       2021-04-10 22:08:24 +08:00
    小规模集群 docker swarm 可以一战
    MengiNo
        10
    MengiNo  
       2021-04-10 23:26:07 +08:00
    @chenqh 偷懒一点的做法就是启动 2 个后端,比如 server1 和 server2,交叉更新,然后不断的改 nginx.conf 的反代指向。虽然很尬但是有效并且可以用 drone 自动实现。 当然的确有 swarm 加持一下 docker compose 就有了很大提升,不要老看着 k8s 对 swarm 有偏见。
    neoblackcap
        11
    neoblackcap  
       2021-04-11 00:53:28 +08:00
    灰度重启,LB 切流量,就是这么简单
    ericls
        12
    ericls  
       2021-04-11 01:38:49 +08:00 via iPhone
    Ansible 其实不错的
    MiracleKagari
        13
    MiracleKagari  
       2021-04-11 01:55:18 +08:00 via Android
    Choerodon
    jieky
        14
    jieky  
       2021-04-11 05:19:25 +08:00
    @MengiNo nginx 做负载均衡不香?为何要不断修改 nginx.conf
    kennylam777
        15
    kennylam777  
       2021-04-11 07:37:40 +08:00
    @chenqh docker-compose (不是 swarm) 好像真的法做 rolling update, 平都用 k8s 的 Service IP 及 readinessProbe, 自解切
    AngryPanda
        16
    AngryPanda  
       2021-04-11 08:47:11 +08:00
    @jieky #14 故障转移?还是 虚 IP ?
        17
    MengiNo  
       2021-04-11 08:56:25 +08:00
    @jieky 不行的。流程应该是这样的:比如 server1 是 version X 、server2 是 version X-1,nginx 指向 server1 。现在想部署 version X+1,则通过 docker-compose up 把镜像版本升级到 X+1 并且会删除 server2 重新部署一个新的叫 server2 的容器,此时因为 nginx 指向 server1,更新不受影响。## 最后再把 nginx 改成指向 server2 正式对外更新,然后要过一会儿,等 server1 确实没有流量且剩余的东西都运行完了,才能把 server1 关掉减少资源占用。

    从##号处断点来看,到 ## 为止 server1 是 X 、server2 是 X+1,他们两个都可以提供服务。nginx 配置负载均衡,要如何阻止他在 server2 准备好了之后立刻停止像 server1 分发流量呢? nginx 虽然能在 server1 关掉之后自动识别出 server1 down 掉了从而只把流量发给 server2,但现在问题是 server1 一直都能接到流量,导致一直无法优雅关闭。

    我们现在比较尴尬的地方就在于,我们并不想让流量均衡而是想实现流量转移。所以只能通过手动修改 nginx.conf 的负载权重,控制两个 server 的流量,这样来实现 low 版的无停机更新、灰度发布和故障回滚。可能是个人水平不够也可能是当局者迷,如果有更优雅的方法请赐教。
    MengiNo
    skys215
        18
    skys215  
       2021-04-11 09:44:54 +08:00
    puppet?
    多个代码服务器是指跑同样代码的服务器吗?还是跑不同代码的服务器?
    kennylam777
        19
    kennylam777  
       2021-04-11 09:55:15 +08:00
    是 k8s 吧, 可以用 k3s 或者直上多的 kubespray 安

    流量移在 Service IP 是基本的作, 更有要求的用 Isito
    chenqh
        20
    chenqh  
       2021-04-11 11:32:06 +08:00
    @MengiNo 用 ansible 做的?
    zhuzhibin
        21
    zhuzhibin  
       2021-04-11 11:37:47 +08:00
    老哥们贴一些部署方案呀
    DoctorCat
        22
    DoctorCat  
       2021-04-11 13:37:15 +08:00
    ansible 足矣,saltstack 更佳
    40EaE5uJO3Xt1VVa
        23
    40EaE5uJO3Xt1VVa  
       2021-04-11 19:12:51 +08:00
    jenkins 配置好
    xuanzz
        24
    xuanzz  
       2021-04-11 19:56:36 +08:00
    有没有具体的文章教程之类的?
    goushenggege
        25
    goushenggege  
       2021-04-12 13:44:21 +08:00
    ftp 哦不 sftp
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2786 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 12:38 PVG 20:38 LAX 04:38 JFK 07:38
    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