1
iBugOne 2021-04-10 19:20:15 +08:00 via Android
git push 直接部署
|
2
eason1874 2021-04-10 19:31:53 +08:00
脸书以前有一篇文章介绍他们怎么滚动部署 PHP 代码,把部署时间从几天缩短到十几分钟,可以去找来看看。
|
3
LanLiang 2021-04-10 20:23:26 +08:00
docker 和 docker-compose
|
4
kennylam777 2021-04-10 20:30:50 +08:00
單機 - docker-compose
多機 - 組 k8s cluster |
5
Ansen 2021-04-10 21:48:46 +08:00 via iPhone
ansible
|
6
chenqh 2021-04-10 21:58:46 +08:00
@kennylam777 单机 docker-compose? 怎么平滑升级?
|
7
SjwNo1 2021-04-10 22:05:37 +08:00
swarm
|
8
dzdh 2021-04-10 22:08:24 +08:00
小规模集群 docker swarm 可以一战
|
10
MengiNo 2021-04-10 23:26:07 +08:00
@chenqh 偷懒一点的做法就是启动 2 个后端,比如 server1 和 server2,交叉更新,然后不断的改 nginx.conf 的反代指向。虽然很尬但是有效并且可以用 drone 自动实现。 当然的确有 swarm 加持一下 docker compose 就有了很大提升,不要老看着 k8s 对 swarm 有偏见。
|
11
neoblackcap 2021-04-11 00:53:28 +08:00
灰度重启,LB 切流量,就是这么简单
|
12
ericls 2021-04-11 01:38:49 +08:00 via iPhone
Ansible 其实不错的
|
13
MiracleKagari 2021-04-11 01:55:18 +08:00 via Android
Choerodon
|
15
kennylam777 2021-04-11 07:37:40 +08:00
@chenqh 單機 docker-compose (不是 swarm) 好像真的沒法做 rolling update, 平時都用 k8s 的 Service IP 及 readinessProbe, 自動解決切換問題
|
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 版的无停机更新、灰度发布和故障回滚。可能是个人水平不够也可能是当局者迷,如果有更优雅的方法请赐教。 |
18
skys215 2021-04-11 09:44:54 +08:00
puppet?
多个代码服务器是指跑同样代码的服务器吗?还是跑不同代码的服务器? |
19
kennylam777 2021-04-11 09:55:15 +08:00
還是無腦 k8s 吧, 單機可以用 k3s 或者直上多機的 kubespray 安裝
這種流量轉移在 Service IP 是基本的動作, 更有要求的用 Isito |
21
zhuzhibin 2021-04-11 11:37:47 +08:00
老哥们贴一些部署方案呀
|
22
DoctorCat 2021-04-11 13:37:15 +08:00
ansible 足矣,saltstack 更佳
|
23
40EaE5uJO3Xt1VVa 2021-04-11 19:12:51 +08:00
jenkins 配置好
|
24
xuanzz 2021-04-11 19:56:36 +08:00
有没有具体的文章教程之类的?
|
25
goushenggege 2021-04-12 13:44:21 +08:00
ftp 哦不 sftp
|