chore: adjust player tank's size

This commit is contained in:
jakciehan
2026-05-02 13:50:52 +08:00
parent 0e321bcea6
commit 38294c040c
35 changed files with 5767 additions and 348 deletions
+183
View File
@@ -0,0 +1,183 @@
# Tank War Server - Kubernetes部署指南
## 概述
Tank War Server是一个基于WebSocket的多人坦克对战游戏服务器,支持1v1和3v3对战模式。本文档说明如何将服务器部署到Kubernetes集群中。
## 前置要求
- Docker
- Kubernetes集群访问权限
- kubectl命令行工具
- 对目标K8s集群的访问配置
## 部署步骤
### 1. 准备环境
确保您已配置好对目标Kubernetes集群的访问:
```bash
# 检查集群连接
kubectl cluster-info
# 查看当前上下文
kubectl config current-context
```
### 2. 构建Docker镜像
```bash
# 在server目录下构建镜像
cd server
docker build -t tankwar-server:latest .
```
### 3. 部署到Kubernetes
使用提供的部署脚本:
```bash
# 给脚本执行权限
chmod +x deploy.sh
# 执行部署
./deploy.sh
```
或者手动部署:
```bash
# 创建命名空间
kubectl create namespace tankwar
# 部署应用
kubectl apply -f k8s-deployment.yaml -n tankwar
# 等待部署完成
kubectl rollout status deployment/tankwar-server -n tankwar
```
### 4. 验证部署
```bash
# 查看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
```
## 监控和日志
### 查看日志
```bash
# 查看所有Pod日志
kubectl logs -l app=tankwar-server -n tankwar
# 查看特定Pod日志
kubectl logs <pod-name> -n tankwar
```
### 扩展和伸缩
```bash
# 扩展副本数量
kubectl scale deployment/tankwar-server --replicas=5 -n tankwar
# 查看资源使用情况
kubectl top pods -n tankwar
```
## 故障排除
### 常见问题
1. **镜像构建失败**
- 检查Docker守护进程是否运行
- 确认Dockerfile语法正确
2. **部署失败**
- 检查kubectl集群连接
- 验证k8s-deployment.yaml文件语法
3. **Pod无法启动**
- 查看Pod事件:`kubectl describe pod <pod-name> -n tankwar`
- 检查资源配额是否足够
4. **连接问题**
- 确认服务已分配外部IP
- 检查防火墙规则
### 调试命令
```bash
# 查看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
```
## 维护操作
### 更新部署
```bash
# 重新构建镜像
docker build -t tankwar-server:latest .
# 更新部署
kubectl rollout restart deployment/tankwar-server -n tankwar
```
### 清理部署
```bash
# 删除部署
kubectl delete -f k8s-deployment.yaml -n tankwar
# 删除命名空间
kubectl delete namespace tankwar
```
## 安全考虑
- 在生产环境中考虑使用Ingress控制器
- 配置适当的网络策略
- 定期更新镜像以修复安全漏洞
- 监控资源使用情况防止资源耗尽