# 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访问