V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Ptu2sha
V2EX  ›  PHP

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

  •  
  •   Ptu2sha · Apr 10, 2021 · 6177 views
    This topic created in 1843 days ago, the information mentioned may be changed or developed.
    除了 rsync 还有 k8s
    还有是吗简单的方案
    25 replies    2021-04-12 13:44:21 +08:00
    iBugOne
        1
    iBugOne  
       Apr 10, 2021 via Android
    git push 直接部署
    eason1874
        2
    eason1874  
       Apr 10, 2021
    脸书以前有一篇文章介绍他们怎么滚动部署 PHP 代码,把部署时间从几天缩短到十几分钟,可以去找来看看。
    LanLiang
        3
    LanLiang  
       Apr 10, 2021
    docker 和 docker-compose
    kennylam777
        4
    kennylam777  
       Apr 10, 2021
    單機 - docker-compose
    多機 - 組 k8s cluster
    Ansen
        5
    Ansen  
       Apr 10, 2021 via iPhone
    ansible
    simple2025
        6
    simple2025  
       Apr 10, 2021
    @kennylam777 单机 docker-compose? 怎么平滑升级?
    SjwNo1
        7
    SjwNo1  
       Apr 10, 2021
    swarm
    dzdh
        8
    dzdh  
       Apr 10, 2021
    小规模集群 docker swarm 可以一战
    lkxjlkejwr
        10
    lkxjlkejwr  
       Apr 10, 2021
    @chenqh 偷懒一点的做法就是启动 2 个后端,比如 server1 和 server2,交叉更新,然后不断的改 nginx.conf 的反代指向。虽然很尬但是有效并且可以用 drone 自动实现。 当然的确有 swarm 加持一下 docker compose 就有了很大提升,不要老看着 k8s 对 swarm 有偏见。
    neoblackcap
        11
    neoblackcap  
       Apr 11, 2021
    灰度重启,LB 切流量,就是这么简单
    ericls
        12
    ericls  
       Apr 11, 2021 via iPhone
    Ansible 其实不错的
    MiracleKagari
        13
    MiracleKagari  
       Apr 11, 2021 via Android
    Choerodon
    jieky
        14
    jieky  
       Apr 11, 2021
    @MengiNo nginx 做负载均衡不香?为何要不断修改 nginx.conf
    kennylam777
        15
    kennylam777  
       Apr 11, 2021
    @chenqh 單機 docker-compose (不是 swarm) 好像真的沒法做 rolling update, 平時都用 k8s 的 Service IP 及 readinessProbe, 自動解決切換問題
    AngryPanda
        16
    AngryPanda  
       Apr 11, 2021
    @jieky #14 故障转移?还是 虚 IP ?
    lkxjlkejwr
        17
    lkxjlkejwr  
       Apr 11, 2021
    @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 版的无停机更新、灰度发布和故障回滚。可能是个人水平不够也可能是当局者迷,如果有更优雅的方法请赐教。
    skys215
        18
    skys215  
       Apr 11, 2021
    puppet?
    多个代码服务器是指跑同样代码的服务器吗?还是跑不同代码的服务器?
    kennylam777
        19
    kennylam777  
       Apr 11, 2021
    還是無腦 k8s 吧, 單機可以用 k3s 或者直上多機的 kubespray 安裝

    這種流量轉移在 Service IP 是基本的動作, 更有要求的用 Isito
    simple2025
        20
    simple2025  
       Apr 11, 2021
    @MengiNo 用 ansible 做的?
    zhuzhibin
        21
    zhuzhibin  
       Apr 11, 2021
    老哥们贴一些部署方案呀
    DoctorCat
        22
    DoctorCat  
       Apr 11, 2021
    ansible 足矣,saltstack 更佳
    40EaE5uJO3Xt1VVa
        23
    40EaE5uJO3Xt1VVa  
       Apr 11, 2021
    jenkins 配置好
    xuanzz
        24
    xuanzz  
       Apr 11, 2021
    有没有具体的文章教程之类的?
    goushenggege
        25
    goushenggege  
       Apr 12, 2021
    ftp 哦不 sftp
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   956 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 70ms · UTC 20:48 · PVG 04:48 · LAX 13:48 · JFK 16:48
    ♥ Do have faith in what you're doing.