k8s-deploymentlisted
Install: claude install-skill structure-projects/structure-agent-rules
# K8s 部署
> 按生态 Helm Chart 双 workload 模板生成 K8s 部署文件。
## 前置条件
- Dockerfile 已存在
- 已确定 K8s 集群和 namespace
## 执行步骤
### 第 1 步:确定部署方式
**MUST 询问用户**:
```
Q1: 部署方式?
a) 原生 K8s YAML(简单场景)
b) Helm Chart(推荐,生态标准)
Q2: 目标环境?
a) 测试(test namespace)
b) 预发(staging)
c) 生产(prod namespace)
```
### 第 2 步:生成对应文件
#### 方式 A:原生 K8s YAML
```
k8s/
├── namespace.yaml
├── deployment-backend.yaml
├── service-backend.yaml
├── deployment-frontend.yaml
├── service-frontend.yaml
├── ingress.yaml
├── configmap.yaml
└── secret.yaml
```
#### 方式 B:Helm Chart(推荐)
按 `wiki/_common/kubernetes.md` 双 workload 模板生成:
```
helm/<chart-name>/
├── Chart.yaml
├── values.yaml
├── .helmignore
└── templates/
├── _helpers.tpl
├── deployment.yaml # 双 workload(backend + frontend)
├── service.yaml
├── ingress.yaml
├── hpa.yaml
├── serviceaccount.yaml
└── tests/test-connection.yaml
```
### 第 3 步:关键配置
#### 后端 Deployment 要点
```yaml
spec:
replicas: 1
template:
spec:
containers:
- name: user-service
image: registry.cn-hangzhou.aliyuncs.com/structured/user-service:1.2.0
env:
- name: APP_PATH
value: /app/boot/app.jar
- name: JAVA_OPTS
value: -Xms256m -Xmx1024m
- name: PARAMS
value: -Dspring.profiles.active=pro
ports:
- containerPort: 8080
livenessProbe:
httpGet:
path: /actuator/health
port: 7777 # 生态约定
initialDelaySec