2025-09-06 14:18:42 +08:00
|
|
|
|
# Drone Kubernetes 部署配置
|
|
|
|
|
|
|
|
|
|
|
|
本目录包含在Kubernetes集群中部署Drone CI/CD的配置文件。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 文件说明
|
|
|
|
|
|
|
|
|
|
|
|
### 1. drone-server-deployment.yaml
|
|
|
|
|
|
Drone Server的主要部署配置:
|
|
|
|
|
|
|
|
|
|
|
|
- **nodeSelector**: 确保Drone Server只在主节点(control-plane)上运行
|
|
|
|
|
|
- **image**: 使用官方Drone镜像 `drone/drone:2`
|
|
|
|
|
|
- **ports**: 80端口用于Web界面
|
|
|
|
|
|
- **volumes**: `/opt/drone/data` 数据存储目录(主机路径)
|
|
|
|
|
|
- **env**: 配置Gitea集成、RPC通信等环境变量
|
|
|
|
|
|
|
|
|
|
|
|
### 2. drone-server-service.yaml
|
|
|
|
|
|
Drone Server服务配置:
|
|
|
|
|
|
|
|
|
|
|
|
- **type**: ClusterIP(集群内部访问)
|
|
|
|
|
|
- **ports**: 暴露80端口
|
|
|
|
|
|
- **selector**: 匹配app=drone-server的pod
|
|
|
|
|
|
|
|
|
|
|
|
### 3. drone-runner-deployment.yaml
|
|
|
|
|
|
Drone Runner部署配置:
|
|
|
|
|
|
|
|
|
|
|
|
- **image**: 使用 `drone/drone-runner-kube:latest`
|
|
|
|
|
|
- **env**: 配置与Drone Server的RPC通信
|
|
|
|
|
|
- **volumes**: 挂载ConfigMap配置
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 5. drone-ingress.yaml
|
|
|
|
|
|
Drone外部访问配置:
|
|
|
|
|
|
|
|
|
|
|
|
- **host**: drone-ops.t-aaron.com(外部访问域名)
|
|
|
|
|
|
- **annotations**: 配置Traefik入口点和TLS
|
|
|
|
|
|
- **tls**: 使用tls Secret启用HTTPS
|
|
|
|
|
|
|
|
|
|
|
|
### 6. install-drone.sh
|
|
|
|
|
|
一键安装脚本:
|
|
|
|
|
|
|
|
|
|
|
|
- 按顺序应用所有yaml文件
|
|
|
|
|
|
- 等待部署完成
|
|
|
|
|
|
- 显示访问信息
|
|
|
|
|
|
|
|
|
|
|
|
## 部署步骤
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1. 确保k3s集群正常运行
|
|
|
|
|
|
openssl rand -hex 16
|
|
|
|
|
|
生产: d3c911a6c227e59f4f86f33db6943dc4
|
|
|
|
|
|
2. 确保Gitea已部署并运行
|
|
|
|
|
|
3. 在Gitea中创建OAuth应用:
|
|
|
|
|
|
- 应用名称: Drone
|
|
|
|
|
|
- 重定向URI: https://drone-ops.t-aaron.com/login
|
|
|
|
|
|
4. 更新yaml文件中的OAuth配置:
|
|
|
|
|
|
替换 drone-server-deployment.yaml 脚本里面的下面内容
|
|
|
|
|
|
- name: DRONE_GITEA_CLIENT_ID
|
|
|
|
|
|
value: "87ef56d3-c8ef-40d3-9dd5-d9214fdac09f"
|
|
|
|
|
|
- name: DRONE_GITEA_CLIENT_SECRET
|
|
|
|
|
|
value: "tHe6Cq3dNpelsCA2NRTaGB3EueIFRkyLxh9USwBbxe4A"
|
|
|
|
|
|
- name: DRONE_RPC_SECRET
|
|
|
|
|
|
value: "your-rpc-secret"
|
|
|
|
|
|
替换 drone-runner-devployment 中如下内容
|
|
|
|
|
|
- name: DRONE_RPC_SECRET
|
|
|
|
|
|
value: "d3c911a6c227e59f4f86f33db6943dc4"
|
|
|
|
|
|
5. 运行安装脚本:
|
|
|
|
|
|
```bash
|
|
|
|
|
|
./install-drone.sh
|
|
|
|
|
|
```
|
|
|
|
|
|
6. 访问 https://drone-ops.t-aaron.com 进行Drone初始化
|
|
|
|
|
|
tuoheng@qq.com
|
|
|
|
|
|
tuoheng
|
|
|
|
|
|
tuoheng
|
|
|
|
|
|
|
|
|
|
|
|
## 注意事项
|
|
|
|
|
|
|
|
|
|
|
|
- Drone数据存储在主机 `/opt/drone/` 目录
|
|
|
|
|
|
- 确保主节点有足够的存储空间
|
|
|
|
|
|
- 需要先在Gitea中配置OAuth应用
|
|
|
|
|
|
- 所有服务都运行在 `default` 命名空间
|
|
|
|
|
|
- 使用相同的TLS证书确保HTTPS访问
|
2025-09-06 15:19:04 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
在Gitea中提交代码
|
|
|
|
|
|
在drone中点击同步
|