Files
goalfylearning-admin/k8s/README.md

147 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 <pod-name>
# 查看配置是否正确挂载
kubectl exec <pod-name> -- cat /app/etc/config-prod.yaml
# 查看环境变量
kubectl exec <pod-name> -- env
# 进入容器调试
kubectl exec -it <pod-name> -- sh
```
## 扩缩容
```bash
# 手动扩容
kubectl scale deployment goalfymax-admin --replicas=5
# 配置 HPA需要 metrics-server
kubectl autoscale deployment goalfymax-admin \
--cpu-percent=80 \
--min=2 \
--max=10
```