chore: adjust player tank's size
This commit is contained in:
@@ -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控制器
|
||||
- 配置适当的网络策略
|
||||
- 定期更新镜像以修复安全漏洞
|
||||
- 监控资源使用情况防止资源耗尽
|
||||
Reference in New Issue
Block a user