90 lines
2.4 KiB
Markdown
90 lines
2.4 KiB
Markdown
# 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访问
|
||
|
||
|
||
在Gitea中提交代码
|
||
在drone中点击同步
|