3.3 KiB
3.3 KiB
Tank War Server - Kubernetes部署指南
概述
Tank War Server是一个基于WebSocket的多人坦克对战游戏服务器,支持1v1和3v3对战模式。本文档说明如何将服务器部署到Kubernetes集群中。
前置要求
- Docker
- Kubernetes集群访问权限
- kubectl命令行工具
- 对目标K8s集群的访问配置
部署步骤
1. 准备环境
确保您已配置好对目标Kubernetes集群的访问:
# 检查集群连接
kubectl cluster-info
# 查看当前上下文
kubectl config current-context
2. 构建Docker镜像
# 在server目录下构建镜像
cd server
docker build -t tankwar-server:latest .
3. 部署到Kubernetes
使用提供的部署脚本:
# 给脚本执行权限
chmod +x deploy.sh
# 执行部署
./deploy.sh
或者手动部署:
# 创建命名空间
kubectl create namespace tankwar
# 部署应用
kubectl apply -f k8s-deployment.yaml -n tankwar
# 等待部署完成
kubectl rollout status deployment/tankwar-server -n tankwar
4. 验证部署
# 查看Pod状态
kubectl get pods -n tankwar
# 查看服务信息
kubectl get svc -n tankwar
# 查看日志
kubectl logs -l app=tankwar-server -n tankwar
配置说明
环境变量
PORT: 服务器端口(默认:3000)HOST: 绑定地址(默认:0.0.0.0)NODE_ENV: 运行环境(默认:production)
资源限制
- 内存请求:256Mi,限制:512Mi
- CPU请求:250m,限制:500m
健康检查
服务器提供健康检查端点:
- URL:
/health - 返回JSON格式的健康状态信息
网络配置
服务使用LoadBalancer类型暴露,可以通过外部IP访问。WebSocket连接地址格式:
ws://<external-ip>:3000
监控和日志
查看日志
# 查看所有Pod日志
kubectl logs -l app=tankwar-server -n tankwar
# 查看特定Pod日志
kubectl logs <pod-name> -n tankwar
扩展和伸缩
# 扩展副本数量
kubectl scale deployment/tankwar-server --replicas=5 -n tankwar
# 查看资源使用情况
kubectl top pods -n tankwar
故障排除
常见问题
-
镜像构建失败
- 检查Docker守护进程是否运行
- 确认Dockerfile语法正确
-
部署失败
- 检查kubectl集群连接
- 验证k8s-deployment.yaml文件语法
-
Pod无法启动
- 查看Pod事件:
kubectl describe pod <pod-name> -n tankwar - 检查资源配额是否足够
- 查看Pod事件:
-
连接问题
- 确认服务已分配外部IP
- 检查防火墙规则
调试命令
# 查看Pod详细信息
kubectl describe pod -l app=tankwar-server -n tankwar
# 进入Pod调试
kubectl exec -it <pod-name> -n tankwar -- /bin/sh
# 查看服务端点
kubectl get endpoints tankwar-server-service -n tankwar
维护操作
更新部署
# 重新构建镜像
docker build -t tankwar-server:latest .
# 更新部署
kubectl rollout restart deployment/tankwar-server -n tankwar
清理部署
# 删除部署
kubectl delete -f k8s-deployment.yaml -n tankwar
# 删除命名空间
kubectl delete namespace tankwar
安全考虑
- 在生产环境中考虑使用Ingress控制器
- 配置适当的网络策略
- 定期更新镜像以修复安全漏洞
- 监控资源使用情况防止资源耗尽