Drone CI 中文文档

高可用概览

Drone 的 HA(High Availability,高可用)处于测试阶段,可能不适合生产工作负载。

Drone 是一个现在能够成为高可用的服务,对故障有弹性。

概览

HA diagram

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 进行开发设置

注意:这是为开发目的,而不是为生产目的。

在本地搭建高可用环境