Drone 的 HA(High Availability,高可用)处于测试阶段,可能不适合生产工作负载。
Drone 是一个现在能够成为高可用的服务,对故障有弹性。
概览
Drone 高可用需要有两个新的组件。
- 负载平衡器 HAProxy。用于负载平衡 Drone Server 的 UI 请求,以及平衡从 Drone Runner 到 Drone Server 的请求。任何标准的负载平衡器或反向代理都可以工作。我们在开发者设置 中使用 HAProxy。
- 用于队列和 pub/sub 的 Redis。用于运行器事件、日志流、构建取消事件,最后用于构建队列本身。
配置
这里我们将看看高可用的基本配置,以及如何配置负载平衡器和 redis。
Drone Server 配置
对于我们的第一台服务器 {DRONE_SERVER_1_HOSTNAME_OR_IP} 来说
1
2
3
4
5
6
|
DRONE_SERVER_HOST={PUBLIC_HOSTNAME_OR_IP}
DRONE_SERVER_PROTO=https
DRONE_COOKIE_SECRET={RANDOM_STRING}
DRONE_DATABASE_DRIVER=postgres
DRONE_DATABASE_DATASOURCE=postgres://postgres:postgres@{DATABASE_HOSTNAME_OR_IP}:5432/drone?sslmode=disable
DRONE_REDIS_CONNECTION=redis://{REDIS_HOSTNAME_OR_IP}:6379
|
对于我们的第二台服务器 {DRONE_SERVER_2_HOSTNAME_OR_IP} 来说。
1
2
3
4
5
6
|
DRONE_SERVER_HOST={PUBLIC_HOSTNAME_OR_IP}
DRONE_SERVER_PROTO=https
DRONE_COOKIE_SECRET={RANDOM_STRING}
DRONE_DATABASE_DRIVER=postgres
DRONE_DATABASE_DATASOURCE=postgres://postgres:postgres@{DATABASE_HOSTNAME_OR_IP}:5432/drone?sslmode=disable
DRONE_REDIS_CONNECTION=redis://{REDIS_HOSTNAME_OR_IP}:6379
|
现在,可以在 https://{PUBLIC_HOSTNAME_OR_IP}
上打开 Drone 前端应用程序。
使用 Docker Compose 进行开发设置
注意:这是为开发目的,而不是为生产目的。
在本地搭建高可用环境