# 单机 K3s 部署说明

## 部署目标

第一阶段允许在一台服务器上部署 K3s，并把多个 Go 微服务以多个 Docker 镜像方式运行，提前保持微服务边界。后续迁移多节点 K8s 时，服务目录和镜像边界不需要推倒重来。

## 基础组件

- K3s：单机 Kubernetes。
- containerd：镜像运行时。
- Redpanda：订单接入事件流。
- PostgreSQL：平台、订单、钱包、配置、风控业务库。
- Redis：幂等缓存、排行榜、在线状态。
- ClickHouse：后台统计数仓。
- MinIO：游戏采集结果、配置文件、静态资源。

## 安装 K3s

```bash
curl -sfL https://get.k3s.io | sh -
sudo kubectl get nodes
```

## 构建单个服务镜像

```bash
cd /Users/amumu/Desktop/beifen/golang新架构
docker build \
  -t merchant-gateway:dev \
  -f 部署/Dockerfile.service \
  --build-arg SERVICE_DIR=平台服务/merchant-gateway \
  --build-arg SERVICE_NAME=merchant-gateway \
  .
```

## 部署检查

```bash
kubectl get pods -A
kubectl get svc -A
kubectl logs -n game-platform deploy/merchant-gateway
```

## 第一阶段注意事项

- 单机 K3s 只是为了保持部署形态，不代表真正高可用。
- PostgreSQL、Redis、ClickHouse 第一阶段可以单机，必须每天备份。
- 生产交易链路必须先保证订单幂等和账本不可变，再谈扩容。
