你们都是怎么维护多个代码服务器的?
除了 rsync 还有 k8s
还有是吗简单的方案
git push 直接部署
eason1874 Reply 2
eason1874 21 小时 57 分钟前
脸书以前有一篇文章介绍他们怎么滚动部署 PHP 代码,把部署时间从几天缩短到十几分钟,可以去找来看看。
LanLiang Reply 3
LanLiang 21 小时 6 分钟前
docker 和 docker-compose
kennylam777 Reply 4
kennylam777 20 小时 58 分钟前
單機 – docker-compose
多機 – 組 k8s cluster
Ansen Reply 5
Ansen 19 小时 40 分钟前 via iPhone
ansible
chenqh Reply 6
chenqh 19 小时 30 分钟前
@kennylam777 单机 docker-compose? 怎么平滑升级?
SjwNo1 Reply 7
SjwNo1 19 小时 24 分钟前
swarm
dzdh Reply 8
dzdh 19 小时 21 分钟前
小规模集群 docker swarm 可以一战
MengiNo Reply 10
MengiNo 18 小时 3 分钟前
@chenqh 偷懒一点的做法就是启动 2 个后端,比如 server1 和 server2,交叉更新,然后不断的改 nginx.conf 的反代指向。虽然很尬但是有效并且可以用 drone 自动实现。 当然的确有 swarm 加持一下 docker compose 就有了很大提升,不要老看着 k8s 对 swarm 有偏见。
neoblackcap Reply 11
neoblackcap 16 小时 36 分钟前
灰度重启,LB 切流量,就是这么简单
ericls Reply 12
ericls 15 小时 50 分钟前 via iPhone
Ansible 其实不错的
MiracleKagari Reply 13
MiracleKagari 15 小时 34 分钟前 via Android
Choerodon
jieky Reply 14
jieky 12 小时 10 分钟前
@MengiNo nginx 做负载均衡不香?为何要不断修改 nginx.conf
kennylam777 Reply 15
kennylam777 9 小时 52 分钟前
@chenqh 單機 docker-compose (不是 swarm) 好像真的沒法做 rolling update, 平時都用 k8s 的 Service IP 及 readinessProbe, 自動解決切換問題
AngryPanda Reply 16
AngryPanda 8 小时 42 分钟前
@jieky #14 故障转移?还是 虚 IP ?
MengiNo Reply 17
MengiNo 8 小时 33 分钟前
@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 Reply 18
skys215 7 小时 44 分钟前
puppet?
多个代码服务器是指跑同样代码的服务器吗?还是跑不同代码的服务器?
kennylam777 Reply 19
kennylam777 7 小时 34 分钟前
還是無腦 k8s 吧, 單機可以用 k3s 或者直上多機的 kubespray 安裝
這種流量轉移在 Service IP 是基本的動作, 更有要求的用 Isito
chenqh Reply 20
chenqh 5 小时 57 分钟前
@MengiNo 用 ansible 做的?
zhuzhibin Reply 21
zhuzhibin 5 小时 51 分钟前
老哥们贴一些部署方案呀
DoctorCat Reply 22
DoctorCat 3 小时 52 分钟前
ansible 足矣,saltstack 更佳