# Goalfymax Admin K8s 部署文档 本目录包含将 Goalfymax Admin 服务部署到 Kubernetes 集群的所有必要文件。 ## 文件说明 - `Dockerfile` - Docker 镜像构建文件(位于项目根目录) - `configmap.yaml` - 应用配置文件 ConfigMap - `deployment.yaml` - Kubernetes Deployment 部署清单 - `service.yaml` - Kubernetes Service 服务清单(ClusterIP,供集群内部访问) ## 部署步骤 ### 1. 构建 Docker 镜像 ```bash # 在项目根目录执行 docker build -t your-registry/goalfymax-admin:latest . # 推送到镜像仓库 docker push your-registry/goalfymax-admin:latest ``` ### 2. 修改配置 在部署前,请根据实际环境修改以下配置: #### configmap.yaml - 数据库连接信息 (database.dsn) - Redis 地址 (redis.addr) - Gateway URL - SSO 配置 - OSS 配置 - 其他敏感信息建议使用 Secret 管理 #### deployment.yaml - 镜像地址 (image) - 资源限制 (resources) - 副本数量 (replicas) - 如使用私有镜像仓库,取消注释 imagePullSecrets ### 3. 部署到 K8s ```bash # 确保命名空间存在 kubectl create namespace goalfyagent --dry-run=client -o yaml | kubectl apply -f - # 应用 ConfigMap kubectl apply -f k8s/configmap.yaml # 部署应用 kubectl apply -f k8s/deployment.yaml # 创建 Service kubectl apply -f k8s/service.yaml ``` ### 4. 验证部署 ```bash # 查看 Pod 状态 kubectl get pods -n goalfyagent -l app=goalfymax-admin # 查看日志 kubectl logs -n goalfyagent -l app=goalfymax-admin -f # 查看 Service kubectl get svc -n goalfyagent goalfymax-admin # 查看详细信息 kubectl describe deployment -n goalfyagent goalfymax-admin ``` ## 服务访问 本服务为后端服务,使用 ClusterIP 类型,仅供集群内部访问: **同命名空间访问:** ``` http://goalfymax-admin:8087 ``` **跨命名空间访问:** ``` http://goalfymax-admin.goalfyagent.svc.cluster.local:8087 ``` **测试连接:** ```bash kubectl run -it --rm debug --image=alpine --restart=Never -n goalfyagent -- \ wget -qO- http://goalfymax-admin:8087/health ``` ## 健康检查 应用提供 `/health` 端点用于健康检查,Deployment 中已配置 liveness 和 readiness 探针会自动使用此端点。 ## 安全建议 1. **敏感信息管理**:将数据库密码、API 密钥等敏感信息存储在 Kubernetes Secret 中 ```bash kubectl create secret generic goalfymax-admin-secret \ --from-literal=db-password='your-password' \ --from-literal=redis-password='your-redis-password' ``` 2. **RBAC 配置**:为应用创建专用的 ServiceAccount 并配置最小权限 3. **网络策略**:使用 NetworkPolicy 限制 Pod 的网络访问 4. **镜像安全**:定期扫描镜像漏洞,使用可信镜像源 ## 监控和日志 - 应用日志输出到 stdout,可通过 `kubectl logs` 查看 - 建议集成 Prometheus 进行监控 - 建议使用 EFK/ELK 栈收集和分析日志 ## 故障排查 ```bash # 查看 Pod 事件 kubectl describe pod # 查看配置是否正确挂载 kubectl exec -- cat /app/etc/config-prod.yaml # 查看环境变量 kubectl exec -- env # 进入容器调试 kubectl exec -it -- sh ``` ## 扩缩容 ```bash # 手动扩容 kubectl scale deployment goalfymax-admin --replicas=5 # 配置 HPA(需要 metrics-server) kubectl autoscale deployment goalfymax-admin \ --cpu-percent=80 \ --min=2 \ --max=10 ```