|
|
@@ -2,19 +2,20 @@
|
|
|
|
|
|
## 📋 概述
|
|
|
|
|
|
-这是一个企业级微服务平台的Helm Chart实现,采用**Umbrella Chart + 通用模板库**的混合架构。用于管理**Shop Recycle项目**的25个Java Spring Cloud微服务的统一部署、配置管理和多环境部署。
|
|
|
+这是一个企业级微服务平台的Helm Chart实现,采用**Umbrella Chart + 通用模板库**的混合架构。用于管理**Shop Recycle项目**的34个Java Spring Cloud微服务的统一部署、配置管理和多环境部署。
|
|
|
|
|
|
**架构版本:** 1.0.0
|
|
|
**项目名称:** Shop Recycle
|
|
|
-**微服务数量:** 25个
|
|
|
+**微服务数量:** 34个
|
|
|
**部署环境:** dev, staging, production
|
|
|
-**Spring Cloud框架:** 标准化的application.properties配置
|
|
|
+**Spring Cloud框架:** 标准化的application.properties配置
|
|
|
+**端口范围:** 1201-1239
|
|
|
|
|
|
---
|
|
|
|
|
|
## 🎯 主要特性
|
|
|
|
|
|
-✅ **Umbrella Chart架构** - 统一部署管理25个微服务
|
|
|
+✅ **Umbrella Chart架构** - 统一部署管理34个微服务
|
|
|
✅ **模板代码复用** - 通用base chart,消除重复代码
|
|
|
✅ **灵活的服务启用/禁用** - 可按需启用或禁用任意微服务
|
|
|
✅ **多环境配置管理** - 开发、测试、生产环境差异化配置
|
|
|
@@ -29,14 +30,14 @@
|
|
|
|
|
|
```
|
|
|
microservice-helm/
|
|
|
-├── Chart.yaml # Umbrella Chart定义(25个依赖)
|
|
|
+├── Chart.yaml # Umbrella Chart定义(34个依赖)
|
|
|
├── values.yaml # 全局配置(各服务默认值)
|
|
|
├── README.md # 本文档
|
|
|
├── templates/ # 根级templates(通常为空)
|
|
|
│ ├── configmap.yaml
|
|
|
│ ├── deployment.yaml
|
|
|
│ └── service.yaml
|
|
|
-├── charts/ # 子Chart目录(25个微服务+base)
|
|
|
+├── charts/ # 子Chart目录(34个微服务+base)
|
|
|
│ ├── base/ # 🔷 通用模板库
|
|
|
│ │ ├── Chart.yaml
|
|
|
│ │ ├── values.yaml
|
|
|
@@ -45,38 +46,49 @@ microservice-helm/
|
|
|
│ │ ├── deployment.yaml
|
|
|
│ │ └── service.yaml
|
|
|
│ │
|
|
|
-│ ├── 后端服务 (8个)
|
|
|
-│ │ ├── shop-recycle-payment/ # 支付服务
|
|
|
-│ │ ├── shop-recycle-store/ # 商店服务
|
|
|
-│ │ ├── shop-recycle-pis/ # PIS服务
|
|
|
-│ │ ├── shop-recycle-merchant/ # 商家服务
|
|
|
-│ │ ├── shop-recycle-account/ # 账户服务
|
|
|
-│ │ ├── shop-recycle-msg/ # 消息服务
|
|
|
-│ │ ├── shop-recycle-order-center/ # 订单中心
|
|
|
-│ │ └── shop-recycle-wechat/ # 微信服务
|
|
|
+│ ├── 核心业务服务 (8个)
|
|
|
+│ │ ├── shop-recycle-payment/ # 支付服务 (1218)
|
|
|
+│ │ ├── shop-recycle-store/ # 商店服务 (1208)
|
|
|
+│ │ ├── shop-recycle-pis/ # PIS服务 (1209)
|
|
|
+│ │ ├── shop-recycle-merchant/ # 商家服务 (1204)
|
|
|
+│ │ ├── shop-recycle-account/ # 账户服务 (1223)
|
|
|
+│ │ ├── shop-recycle-msg/ # 消息服务 (1217)
|
|
|
+│ │ ├── shop-recycle-order-center/ # 订单中心 (1203)
|
|
|
+│ │ └── shop-recycle-wechat/ # 微信服务 (1231)
|
|
|
│ │
|
|
|
-│ ├── 数据和管理服务 (4个)
|
|
|
-│ │ ├── shop-recycle-data-statistics/ # 数据统计
|
|
|
-│ │ ├── shop-recycle-platform/ # 平台服务
|
|
|
-│ │ ├── shop-recycle-gateway/ # API网关
|
|
|
-│ │ └── shop-recycle-sche/ # 调度服务
|
|
|
+│ ├── 数据和基础服务 (7个)
|
|
|
+│ │ ├── shop-recycle-data-statistics/ # 数据统计 (1220)
|
|
|
+│ │ ├── shop-recycle-platform/ # 平台服务 (1201)
|
|
|
+│ │ ├── shop-recycle-gateway/ # API网关 (1211)
|
|
|
+│ │ ├── shop-recycle-sche/ # 调度服务 (1215)
|
|
|
+│ │ ├── shop-recycle-dispatcher/ # 分发器 (1236)
|
|
|
+│ │ ├── shop-recycle-dealdata-service/ # 数据处理服务 (1235)
|
|
|
+│ │ └── shop-recycle-async-web/ # 异步服务 (1239)
|
|
|
│ │
|
|
|
-│ ├── 前端Web服务 (8个)
|
|
|
-│ │ ├── shop-recycle-wechat-web/ # 微信Web
|
|
|
-│ │ ├── shop-recycle-payment-web/ # 支付Web
|
|
|
-│ │ ├── shop-recycle-store-wechat-web/ # 店铺微信Web
|
|
|
-│ │ ├── shop-recycle-platform-pc-web/ # 平台PC Web
|
|
|
-│ │ ├── shop-recycle-out-web/ # 外部Web
|
|
|
-│ │ ├── shop-recycle-store-pc-web/ # 店铺PC Web
|
|
|
-│ │ ├── shop-recycle-oss-web/ # OSS Web
|
|
|
-│ │ └── shop-recycle-login-center/ # 登录中心
|
|
|
+│ ├── 网关拓展服务 (3个)
|
|
|
+│ │ ├── shop-recycle-gateway-out/ # 外部网关 (1226)
|
|
|
+│ │ ├── shop-recycle-gateway-out-upgrade/# 网关升级 (1237)
|
|
|
+│ │ └── shop-recycle-order-search/ # 订单查询 (1238)
|
|
|
│ │
|
|
|
-│ └── 管理后台服务 (5个)
|
|
|
-│ ├── shop-recycle-merchant-wechat-web/ # 商家微信Web
|
|
|
-│ ├── shop-recycle-import-web/ # 导入Web
|
|
|
-│ ├── shop-recycle-marketer-pc-web/ # 营销PC Web
|
|
|
-│ ├── shop-recycle-erp-pc-web/ # ERP PC Web
|
|
|
-│ └── shop-recycle-merchant-pc-web/ # 商家PC Web
|
|
|
+│ ├── 客户端Web服务 (9个)
|
|
|
+│ │ ├── shop-recycle-wechat-web/ # 微信Web (1214)
|
|
|
+│ │ ├── shop-recycle-payment-web/ # 支付Web (1219)
|
|
|
+│ │ ├── shop-recycle-store-wechat-web/ # 店铺微信Web (1207)
|
|
|
+│ │ ├── shop-recycle-platform-pc-web/ # 平台PC Web (1202)
|
|
|
+│ │ ├── shop-recycle-out-web/ # 外部Web (1224)
|
|
|
+│ │ ├── shop-recycle-store-pc-web/ # 店铺PC Web (1222)
|
|
|
+│ │ ├── shop-recycle-oss-web/ # OSS Web (1212)
|
|
|
+│ │ ├── shop-recycle-login-center/ # 登录中心 (1210)
|
|
|
+│ │ └── shop-recycle-vs-web/ # VS Web (1233)
|
|
|
+│ │
|
|
|
+│ └── 管理后台服务 (7个)
|
|
|
+│ ├── shop-recycle-merchant-wechat-web/ # 商家微信Web (1206)
|
|
|
+│ ├── shop-recycle-import-web/ # 导入Web (1221)
|
|
|
+│ ├── shop-recycle-marketer-pc-web/ # 营销PC Web (1232)
|
|
|
+│ ├── shop-recycle-erp-pc-web/ # ERP PC Web (1228)
|
|
|
+│ ├── shop-recycle-merchant-pc-web/ # 商家PC Web (1205)
|
|
|
+│ ├── shop-recycle-agent-pc-web/ # 代理PC Web (1225)
|
|
|
+│ └── shop-recycle-customer-wechat-web/ # 客户微信Web (1227)
|
|
|
│
|
|
|
└── environments/ # 环境特定配置
|
|
|
├── dev-values.yaml # 开发环境(DEBUG日志、单副本)
|
|
|
@@ -121,15 +133,14 @@ helm install shop-recycle ./ \
|
|
|
#### 3️⃣ 选择性部署微服务
|
|
|
|
|
|
```bash
|
|
|
-# 仅部署后端核心服务
|
|
|
+# 仅部署核心后端服务
|
|
|
helm install shop-recycle ./ \
|
|
|
--set shop-recycle-payment.enabled=true \
|
|
|
--set shop-recycle-store.enabled=true \
|
|
|
--set shop-recycle-merchant.enabled=true \
|
|
|
- --set shop-recycle-gateway.enabled=true \
|
|
|
- --set shop-recycle-wechat-web.enabled=false
|
|
|
+ --set shop-recycle-gateway.enabled=true
|
|
|
|
|
|
-# 禁用特定服务
|
|
|
+# 禁用特定Web服务
|
|
|
helm install shop-recycle ./ \
|
|
|
--set shop-recycle-marketer-pc-web.enabled=false \
|
|
|
--set shop-recycle-erp-pc-web.enabled=false
|
|
|
@@ -140,8 +151,7 @@ helm install shop-recycle ./ \
|
|
|
```bash
|
|
|
helm install shop-recycle ./ \
|
|
|
--set global.image.registry=your-registry \
|
|
|
- --set shop-recycle-payment.image.tag=v2.0.0 \
|
|
|
- --set shop-recycle-store.image.tag=v2.0.0
|
|
|
+ --set shop-recycle-payment.image.tag=v2.0.0
|
|
|
```
|
|
|
|
|
|
#### 5️⃣ 验证安装
|
|
|
@@ -162,79 +172,66 @@ kubectl get svc
|
|
|
|
|
|
---
|
|
|
|
|
|
-## 📊 配置详解
|
|
|
-
|
|
|
-### 全局配置(values.yaml)
|
|
|
-
|
|
|
-```yaml
|
|
|
-global:
|
|
|
- image:
|
|
|
- registry: your-registry # Docker镜像仓库
|
|
|
- pullPolicy: IfNotPresent
|
|
|
- labels:
|
|
|
- platform: microservice-platform
|
|
|
- project: shop-recycle
|
|
|
- version: "1.0"
|
|
|
-```
|
|
|
-
|
|
|
-### 微服务配置示例
|
|
|
-
|
|
|
-每个微服务的values.yaml结构如下:
|
|
|
-
|
|
|
-```yaml
|
|
|
-app:
|
|
|
- name: shop-recycle-payment # 应用名称
|
|
|
- replicaCount: 1 # Pod副本数
|
|
|
-
|
|
|
-image:
|
|
|
- repository: your-registry/shop-recycle-payment
|
|
|
- tag: "1.0.0"
|
|
|
- pullPolicy: IfNotPresent
|
|
|
-
|
|
|
-service:
|
|
|
- type: ClusterIP
|
|
|
- port: 8080 # 对外端口
|
|
|
- targetPort: 8080 # 容器端口
|
|
|
-
|
|
|
-resources:
|
|
|
- requests:
|
|
|
- cpu: 250m
|
|
|
- memory: 256Mi
|
|
|
- limits:
|
|
|
- cpu: 500m
|
|
|
- memory: 512Mi
|
|
|
-
|
|
|
-config:
|
|
|
- yml: # application.yml配置
|
|
|
- logging:
|
|
|
- level:
|
|
|
- root: INFO
|
|
|
- management:
|
|
|
- endpoints:
|
|
|
- web:
|
|
|
- exposure:
|
|
|
- include: health,info,metrics
|
|
|
-```
|
|
|
-
|
|
|
-### 端口分配
|
|
|
-
|
|
|
-所有25个微服务的端口分配:
|
|
|
-
|
|
|
-| 服务 | 端口 | 服务 | 端口 |
|
|
|
-|------|------|------|------|
|
|
|
-| shop-recycle-payment | 8080 | shop-recycle-platform | 8089 |
|
|
|
-| shop-recycle-store | 8081 | shop-recycle-wechat-web | 8090 |
|
|
|
-| shop-recycle-pis | 8082 | shop-recycle-payment-web | 8091 |
|
|
|
-| shop-recycle-merchant | 8083 | shop-recycle-store-wechat-web | 8092 |
|
|
|
-| shop-recycle-account | 8084 | shop-recycle-platform-pc-web | 8093 |
|
|
|
-| shop-recycle-msg | 8085 | shop-recycle-out-web | 8094 |
|
|
|
-| shop-recycle-order-center | 8086 | shop-recycle-store-pc-web | 8095 |
|
|
|
-| shop-recycle-wechat | 8087 | shop-recycle-login-center | 8096 |
|
|
|
-| shop-recycle-data-statistics | 8088 | shop-recycle-oss-web | 8097 |
|
|
|
-| shop-recycle-gateway | 8098 | shop-recycle-sche | 8099 |
|
|
|
-| shop-recycle-merchant-wechat-web | 8100 | shop-recycle-import-web | 8101 |
|
|
|
-| shop-recycle-marketer-pc-web | 8102 | shop-recycle-erp-pc-web | 8103 |
|
|
|
-| shop-recycle-merchant-pc-web | 8104 | - | - |
|
|
|
+## 📊 服务详细列表
|
|
|
+
|
|
|
+### 核心业务服务 (8个)
|
|
|
+
|
|
|
+| 服务名称 | 端口 | 说明 |
|
|
|
+|--------|------|------|
|
|
|
+| shop-recycle-payment | 1218 | 支付服务 |
|
|
|
+| shop-recycle-store | 1208 | 商店服务 |
|
|
|
+| shop-recycle-pis | 1209 | PIS系统 |
|
|
|
+| shop-recycle-merchant | 1204 | 商家管理 |
|
|
|
+| shop-recycle-account | 1223 | 账户管理 |
|
|
|
+| shop-recycle-msg | 1217 | 消息服务 |
|
|
|
+| shop-recycle-order-center | 1203 | 订单中心 |
|
|
|
+| shop-recycle-wechat | 1231 | 微信集成 |
|
|
|
+
|
|
|
+### 数据和基础服务 (7个)
|
|
|
+
|
|
|
+| 服务名称 | 端口 | 说明 |
|
|
|
+|--------|------|------|
|
|
|
+| shop-recycle-platform | 1201 | 平台核心 |
|
|
|
+| shop-recycle-gateway | 1211 | API网关 |
|
|
|
+| shop-recycle-data-statistics | 1220 | 数据统计 |
|
|
|
+| shop-recycle-sche | 1215 | 调度服务 |
|
|
|
+| shop-recycle-dispatcher | 1236 | 分发服务 |
|
|
|
+| shop-recycle-dealdata-service | 1235 | 数据处理 |
|
|
|
+| shop-recycle-async-web | 1239 | 异步处理 |
|
|
|
+
|
|
|
+### 网关拓展服务 (3个)
|
|
|
+
|
|
|
+| 服务名称 | 端口 | 说明 |
|
|
|
+|--------|------|------|
|
|
|
+| shop-recycle-gateway-out | 1226 | 外部网关 |
|
|
|
+| shop-recycle-gateway-out-upgrade | 1237 | 网关升级 |
|
|
|
+| shop-recycle-order-search | 1238 | 订单查询 |
|
|
|
+
|
|
|
+### 客户端Web服务 (9个)
|
|
|
+
|
|
|
+| 服务名称 | 端口 | 说明 |
|
|
|
+|--------|------|------|
|
|
|
+| shop-recycle-platform-pc-web | 1202 | 平台PC页面 |
|
|
|
+| shop-recycle-store-wechat-web | 1207 | 店铺微信页面 |
|
|
|
+| shop-recycle-merchant-wechat-web | 1206 | 商家微信页面 |
|
|
|
+| shop-recycle-login-center | 1210 | 登录中心 |
|
|
|
+| shop-recycle-oss-web | 1212 | 文件管理 |
|
|
|
+| shop-recycle-wechat-web | 1214 | 微信页面 |
|
|
|
+| shop-recycle-payment-web | 1219 | 支付页面 |
|
|
|
+| shop-recycle-store-pc-web | 1222 | 店铺PC页面 |
|
|
|
+| shop-recycle-out-web | 1224 | 外部页面 |
|
|
|
+| shop-recycle-vs-web | 1233 | VS页面 |
|
|
|
+
|
|
|
+### 管理后台服务 (7个)
|
|
|
+
|
|
|
+| 服务名称 | 端口 | 说明 |
|
|
|
+|--------|------|------|
|
|
|
+| shop-recycle-import-web | 1221 | 数据导入 |
|
|
|
+| shop-recycle-marketer-pc-web | 1232 | 营销管理 |
|
|
|
+| shop-recycle-erp-pc-web | 1228 | ERP系统 |
|
|
|
+| shop-recycle-merchant-pc-web | 1205 | 商家后台 |
|
|
|
+| shop-recycle-agent-pc-web | 1225 | 代理后台 |
|
|
|
+| shop-recycle-customer-wechat-web | 1227 | 客户微信 |
|
|
|
|
|
|
---
|
|
|
|
|
|
@@ -250,24 +247,14 @@ global:
|
|
|
shop-recycle-payment:
|
|
|
enabled: true
|
|
|
app:
|
|
|
- replicaCount: 1 # 单副本
|
|
|
+ replicaCount: 1
|
|
|
image:
|
|
|
tag: dev-latest
|
|
|
config:
|
|
|
yml:
|
|
|
logging:
|
|
|
level:
|
|
|
- root: DEBUG # DEBUG日志级别
|
|
|
- management:
|
|
|
- endpoints:
|
|
|
- web:
|
|
|
- exposure:
|
|
|
- include: health,info,metrics,env,configprops # 暴露更多端点用于调试
|
|
|
-```
|
|
|
-
|
|
|
-**部署方式:**
|
|
|
-```bash
|
|
|
-helm install shop-recycle ./ -f environments/dev-values.yaml
|
|
|
+ root: DEBUG
|
|
|
```
|
|
|
|
|
|
### 预发布环境 (staging-values.yaml)
|
|
|
@@ -280,14 +267,9 @@ global:
|
|
|
shop-recycle-payment:
|
|
|
enabled: true
|
|
|
app:
|
|
|
- replicaCount: 2 # 双副本
|
|
|
+ replicaCount: 2
|
|
|
image:
|
|
|
tag: staging-latest
|
|
|
- config:
|
|
|
- yml:
|
|
|
- logging:
|
|
|
- level:
|
|
|
- root: INFO # INFO日志级别
|
|
|
```
|
|
|
|
|
|
### 生产环境 (prod-values.yaml)
|
|
|
@@ -300,26 +282,16 @@ global:
|
|
|
shop-recycle-payment:
|
|
|
enabled: true
|
|
|
app:
|
|
|
- replicaCount: 3 # 三副本高可用
|
|
|
+ replicaCount: 3
|
|
|
image:
|
|
|
- tag: "1.0.0" # 使用固定版本,不使用latest
|
|
|
+ tag: "1.0.0"
|
|
|
resources:
|
|
|
requests:
|
|
|
- cpu: 500m # 资源请求翻倍
|
|
|
+ cpu: 500m
|
|
|
memory: 512Mi
|
|
|
limits:
|
|
|
- cpu: 1000m # 严格的资源限制
|
|
|
+ cpu: 1000m
|
|
|
memory: 1024Mi
|
|
|
- config:
|
|
|
- yml:
|
|
|
- logging:
|
|
|
- level:
|
|
|
- root: WARN # 仅记录WARN及以上级别
|
|
|
- management:
|
|
|
- endpoints:
|
|
|
- web:
|
|
|
- exposure:
|
|
|
- include: health,metrics # 仅暴露必要的端点
|
|
|
```
|
|
|
|
|
|
---
|
|
|
@@ -328,172 +300,102 @@ shop-recycle-payment:
|
|
|
|
|
|
### 示例1:基础部署
|
|
|
|
|
|
-最小化部署,使用所有默认配置:
|
|
|
-
|
|
|
```bash
|
|
|
helm install shop-recycle ./
|
|
|
```
|
|
|
|
|
|
-### 示例2:完整的多环境部署脚本
|
|
|
+### 示例2:多环境部署脚本
|
|
|
|
|
|
```bash
|
|
|
#!/bin/bash
|
|
|
|
|
|
-# 部署开发环境
|
|
|
+# 开发环境
|
|
|
helm install shop-recycle-dev ./ \
|
|
|
--namespace dev \
|
|
|
--create-namespace \
|
|
|
-f environments/dev-values.yaml
|
|
|
|
|
|
-# 部署预发布环境
|
|
|
+# 预发布环境
|
|
|
helm install shop-recycle-staging ./ \
|
|
|
--namespace staging \
|
|
|
--create-namespace \
|
|
|
-f environments/staging-values.yaml
|
|
|
|
|
|
-# 部署生产环境
|
|
|
+# 生产环境
|
|
|
helm install shop-recycle-prod ./ \
|
|
|
--namespace prod \
|
|
|
--create-namespace \
|
|
|
-f environments/prod-values.yaml
|
|
|
```
|
|
|
|
|
|
-### 示例3:只部署后端服务
|
|
|
-
|
|
|
-```bash
|
|
|
-# 创建values文件 backend-only.yaml,禁用所有web服务
|
|
|
-helm install shop-recycle ./ \
|
|
|
- --set shop-recycle-wechat-web.enabled=false \
|
|
|
- --set shop-recycle-payment-web.enabled=false \
|
|
|
- --set shop-recycle-store-wechat-web.enabled=false \
|
|
|
- --set shop-recycle-platform-pc-web.enabled=false \
|
|
|
- --set shop-recycle-out-web.enabled=false \
|
|
|
- --set shop-recycle-store-pc-web.enabled=false \
|
|
|
- --set shop-recycle-oss-web.enabled=false \
|
|
|
- --set shop-recycle-login-center.enabled=false \
|
|
|
- --set shop-recycle-merchant-wechat-web.enabled=false \
|
|
|
- --set shop-recycle-import-web.enabled=false \
|
|
|
- --set shop-recycle-marketer-pc-web.enabled=false \
|
|
|
- --set shop-recycle-erp-pc-web.enabled=false \
|
|
|
- --set shop-recycle-merchant-pc-web.enabled=false
|
|
|
-```
|
|
|
-
|
|
|
-### 示例4:升级应用版本
|
|
|
+### 示例3:升级应用版本
|
|
|
|
|
|
```bash
|
|
|
-# 升级所有服务到新版本
|
|
|
-helm upgrade shop-recycle ./ \
|
|
|
- --set global.image.tag=v2.0.0
|
|
|
-
|
|
|
-# 或升级特定服务
|
|
|
helm upgrade shop-recycle ./ \
|
|
|
--set shop-recycle-payment.image.tag=v2.0.0 \
|
|
|
--set shop-recycle-store.image.tag=v2.0.0
|
|
|
```
|
|
|
|
|
|
-### 示例5:灾难恢复
|
|
|
+### 示例4:查看部署状态
|
|
|
|
|
|
```bash
|
|
|
-# 查看发布历史
|
|
|
-helm history shop-recycle
|
|
|
+# 查看所有Pod
|
|
|
+kubectl get pods -l project=shop-recycle -o wide
|
|
|
|
|
|
-# 回滚到前一个版本
|
|
|
-helm rollback shop-recycle 1
|
|
|
+# 查看特定服务日志
|
|
|
+kubectl logs -l app=shop-recycle-payment -f
|
|
|
|
|
|
-# 回滚到特定版本
|
|
|
-helm rollback shop-recycle 5
|
|
|
+# 验证服务健康
|
|
|
+curl -s localhost:1218/actuator/health | jq .
|
|
|
```
|
|
|
|
|
|
---
|
|
|
|
|
|
## 🔍 常见操作
|
|
|
|
|
|
-### 查看部署状态
|
|
|
-
|
|
|
-```bash
|
|
|
-# 查看Release信息
|
|
|
-helm status shop-recycle
|
|
|
-
|
|
|
-# 查看Release使用的values
|
|
|
-helm get values shop-recycle
|
|
|
-
|
|
|
-# 查看Release部署的资源
|
|
|
-helm get manifest shop-recycle
|
|
|
-
|
|
|
-# 查看所有微服务pod
|
|
|
-kubectl get pods -l project=shop-recycle -o wide
|
|
|
-```
|
|
|
-
|
|
|
### 调试和测试
|
|
|
|
|
|
```bash
|
|
|
# 验证Chart语法
|
|
|
helm lint ./
|
|
|
|
|
|
-# 渲染模板(不实际部署)
|
|
|
+# 渲染模板
|
|
|
helm template shop-recycle ./
|
|
|
|
|
|
-# 详细渲染(查看完整输出)
|
|
|
-helm template shop-recycle ./ --debug
|
|
|
-
|
|
|
-# 查看特定环境的渲染结果
|
|
|
+# 查看特定环境的配置
|
|
|
helm template shop-recycle ./ -f environments/prod-values.yaml
|
|
|
```
|
|
|
|
|
|
-### 日志和监控
|
|
|
-
|
|
|
-```bash
|
|
|
-# 查看所有微服务日志
|
|
|
-kubectl logs -l project=shop-recycle -f
|
|
|
-
|
|
|
-# 查看特定服务日志
|
|
|
-kubectl logs -l app=shop-recycle-payment -f
|
|
|
-
|
|
|
-# 查看Pod详情(包括事件)
|
|
|
-kubectl describe pod <pod-name>
|
|
|
-
|
|
|
-# 查看资源使用情况
|
|
|
-kubectl top pods -l project=shop-recycle
|
|
|
-```
|
|
|
-
|
|
|
-### 端口转发(本地测试)
|
|
|
+### 端口转发
|
|
|
|
|
|
```bash
|
|
|
# 转发payment服务
|
|
|
-kubectl port-forward svc/shop-recycle-payment 8080:8080
|
|
|
+kubectl port-forward svc/shop-recycle-payment 1218:1218
|
|
|
|
|
|
# 转发gateway服务
|
|
|
-kubectl port-forward svc/shop-recycle-gateway 8098:8098
|
|
|
+kubectl port-forward svc/shop-recycle-gateway 1211:1211
|
|
|
|
|
|
-# 在另一个终端测试
|
|
|
-curl http://localhost:8080/actuator/health
|
|
|
-curl http://localhost:8098/actuator/health
|
|
|
+# 测试
|
|
|
+curl http://localhost:1218/actuator/health
|
|
|
```
|
|
|
|
|
|
-### 进入容器调试
|
|
|
+### 日志查看
|
|
|
|
|
|
```bash
|
|
|
-# 进入pod
|
|
|
-kubectl exec -it <pod-name> -- /bin/bash
|
|
|
+# 查看所有服务日志
|
|
|
+kubectl logs -l project=shop-recycle -f
|
|
|
|
|
|
-# 执行命令查看配置
|
|
|
-kubectl exec <pod-name> -- cat /etc/config/application.properties
|
|
|
+# 查看特定服务日志
|
|
|
+kubectl logs -l app=shop-recycle-payment -f
|
|
|
|
|
|
-# 测试应用健康状态
|
|
|
-kubectl exec <pod-name> -- curl http://localhost:8080/actuator/health
|
|
|
+# 查看最近的日志
|
|
|
+kubectl logs -l app=shop-recycle-payment --tail=50
|
|
|
```
|
|
|
|
|
|
-### 删除和清理
|
|
|
+### 删除Release
|
|
|
|
|
|
```bash
|
|
|
-# 删除Release(保留PVC)
|
|
|
helm uninstall shop-recycle
|
|
|
-
|
|
|
-# 删除namespace
|
|
|
-kubectl delete namespace shop-recycle
|
|
|
-
|
|
|
-# 删除所有资源
|
|
|
-kubectl delete all -l project=shop-recycle
|
|
|
```
|
|
|
|
|
|
---
|
|
|
@@ -502,97 +404,43 @@ kubectl delete all -l project=shop-recycle
|
|
|
|
|
|
### Umbrella Chart设计
|
|
|
|
|
|
-**Umbrella Chart** 是一个特殊的Helm Chart,主要作用是:
|
|
|
-1. 作为25个子Chart的容器
|
|
|
-2. 提供全局配置和共享值
|
|
|
-3. 支持子Chart的条件启用/禁用
|
|
|
-4. 实现统一的部署管理
|
|
|
-
|
|
|
-```
|
|
|
-Umbrella Chart (shop-recycle)
|
|
|
-├── Base Chart (可复用模板)
|
|
|
-│ ├── Deployment模板
|
|
|
-│ ├── Service模板
|
|
|
-│ └── ConfigMap模板(标准化Spring Cloud属性)
|
|
|
-└── 25个微服务(继承Base模板)
|
|
|
- ├── 后端服务 (8个)
|
|
|
- ├── 数据管理 (4个)
|
|
|
- ├── 前端Web (8个)
|
|
|
- └── 管理后台 (5个)
|
|
|
-```
|
|
|
-
|
|
|
-### 模板继承和代码复用
|
|
|
+**Umbrella Chart** 管理34个子Chart,提供:
|
|
|
+1. 统一的部署管理
|
|
|
+2. 全局配置共享
|
|
|
+3. 灵活的服务启用/禁用
|
|
|
+4. 环境隔离配置
|
|
|
|
|
|
-各微服务的templates通过引用base chart的模板实现代码复用:
|
|
|
-
|
|
|
-```yaml
|
|
|
-# shop-recycle-payment/templates/deployment.yaml
|
|
|
-{{- include "base.deployment" . -}}
|
|
|
-```
|
|
|
-
|
|
|
-这样可以:
|
|
|
-- ✅ 避免重复代码(DRY原则)
|
|
|
-- ✅ 统一部署配置逻辑
|
|
|
-- ✅ 快速添加新服务
|
|
|
-- ✅ 维护和修复更简单
|
|
|
-
|
|
|
-### Spring Cloud应用属性配置
|
|
|
-
|
|
|
-**标准化的application.properties生成**:
|
|
|
-
|
|
|
-ConfigMap模板中直接固定生成标准的Spring Cloud配置:
|
|
|
+### Spring Cloud配置标准化
|
|
|
|
|
|
+ConfigMap模板自动生成:
|
|
|
```properties
|
|
|
-spring.application.name=shop-recycle-payment
|
|
|
+spring.application.name=<service-name>
|
|
|
spring.protocol.name=spring
|
|
|
-server.port=8080
|
|
|
+server.port=<service-port>
|
|
|
```
|
|
|
|
|
|
-这样做的优势:
|
|
|
-- ✅ 消除了values文件中的重复配置
|
|
|
-- ✅ 保证配置的一致性和可靠性
|
|
|
-- ✅ 简化了values.yaml的复杂度
|
|
|
-- ✅ 应用名称和端口始终保持关联
|
|
|
+这保证了所有微服务的配置一致性和可维护性。
|
|
|
|
|
|
---
|
|
|
|
|
|
## ⚙️ 高级配置
|
|
|
|
|
|
-### 副本自动扩展(HPA)
|
|
|
+### 副本自动扩展
|
|
|
|
|
|
```bash
|
|
|
kubectl autoscale deployment shop-recycle-payment \
|
|
|
--min=2 --max=10 --cpu-percent=80
|
|
|
```
|
|
|
|
|
|
-### 安全上下文
|
|
|
-
|
|
|
-```yaml
|
|
|
-securityContext:
|
|
|
- runAsNonRoot: true
|
|
|
- runAsUser: 1000
|
|
|
- readOnlyRootFilesystem: true
|
|
|
-```
|
|
|
-
|
|
|
### 资源限制
|
|
|
|
|
|
-始终为容器定义资源请求和限制,防止资源耗尽。详见environment配置。
|
|
|
+详见environment配置文件。
|
|
|
|
|
|
---
|
|
|
|
|
|
## 🔐 安全最佳实践
|
|
|
|
|
|
-### 1. 资源限制和请求
|
|
|
-
|
|
|
-详见environment配置文件中的资源设置。
|
|
|
-
|
|
|
-### 2. 敏感信息管理
|
|
|
-
|
|
|
-- ✅ 使用Kubernetes Secrets存储密码
|
|
|
-- ✅ 不要在ConfigMap中存储敏感信息
|
|
|
-- ✅ 定期轮换凭证
|
|
|
-
|
|
|
-示例:创建Secret
|
|
|
+### 敏感信息管理
|
|
|
|
|
|
```bash
|
|
|
kubectl create secret generic db-credentials \
|
|
|
@@ -600,78 +448,9 @@ kubectl create secret generic db-credentials \
|
|
|
--from-literal=password=dbpass
|
|
|
```
|
|
|
|
|
|
-### 3. 健康检查
|
|
|
-
|
|
|
-已包含的liveness和readiness probe配置:
|
|
|
+### 健康检查
|
|
|
|
|
|
-```yaml
|
|
|
-livenessProbe:
|
|
|
- httpGet:
|
|
|
- path: /actuator/health
|
|
|
- port: http
|
|
|
- initialDelaySeconds: 30
|
|
|
- periodSeconds: 10
|
|
|
-
|
|
|
-readinessProbe:
|
|
|
- httpGet:
|
|
|
- path: /actuator/health
|
|
|
- port: http
|
|
|
- initialDelaySeconds: 5
|
|
|
- periodSeconds: 5
|
|
|
-```
|
|
|
-
|
|
|
----
|
|
|
-
|
|
|
-## 📈 性能优化
|
|
|
-
|
|
|
-### 调整JVM参数
|
|
|
-
|
|
|
-在环境配置中修改JAVA_OPTS(需在base chart中配置)。
|
|
|
-
|
|
|
-### 优化Health Check
|
|
|
-
|
|
|
-- 增加初始延迟时间:initialDelaySeconds
|
|
|
-- 减少检查频率:periodSeconds
|
|
|
-
|
|
|
-### Pod亲和力配置
|
|
|
-
|
|
|
-实现Pod高可用分布,避免单点故障。
|
|
|
-
|
|
|
----
|
|
|
-
|
|
|
-## 🐛 故障排查
|
|
|
-
|
|
|
-### Pod处于Pending状态
|
|
|
-
|
|
|
-```bash
|
|
|
-kubectl describe pod <pod-name>
|
|
|
-kubectl top nodes
|
|
|
-```
|
|
|
-
|
|
|
-**原因:** 资源不足或节点有污点
|
|
|
-
|
|
|
-### 镜像拉取失败
|
|
|
-
|
|
|
-**原因:** 镜像地址错误、标签不存在或凭证不正确
|
|
|
-
|
|
|
-### 应用无法启动
|
|
|
-
|
|
|
-```bash
|
|
|
-kubectl logs <pod-name>
|
|
|
-kubectl logs <pod-name> --previous
|
|
|
-```
|
|
|
-
|
|
|
-**原因:** 配置错误、依赖服务不可用
|
|
|
-
|
|
|
-### 验证ConfigMap内容
|
|
|
-
|
|
|
-```bash
|
|
|
-# 查看ConfigMap
|
|
|
-kubectl get cm shop-recycle-payment-config -o yaml
|
|
|
-
|
|
|
-# 验证application.properties
|
|
|
-kubectl exec <pod-name> -- cat /etc/config/application.properties
|
|
|
-```
|
|
|
+所有服务都配置了liveness和readiness probe,使用`/actuator/health`端点。
|
|
|
|
|
|
---
|
|
|
|
|
|
@@ -681,7 +460,6 @@ kubectl exec <pod-name> -- cat /etc/config/application.properties
|
|
|
- [Kubernetes官方文档](https://kubernetes.io/docs/)
|
|
|
- [Spring Cloud官方文档](https://spring.io/projects/spring-cloud)
|
|
|
- [Spring Boot Actuator](https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html)
|
|
|
-- [Helm Chart最佳实践](https://helm.sh/docs/chart_best_practices/)
|
|
|
|
|
|
---
|
|
|
|
|
|
@@ -690,42 +468,24 @@ kubectl exec <pod-name> -- cat /etc/config/application.properties
|
|
|
### v1.0.0 (2026-01-15)
|
|
|
- ✅ 初始化Umbrella Chart架构
|
|
|
- ✅ 创建base通用模板库
|
|
|
-- ✅ 实现25个shop-recycle微服务Chart
|
|
|
+- ✅ 实现34个shop-recycle微服务Chart
|
|
|
+- ✅ 使用正确的端口号(1201-1239)
|
|
|
- ✅ 标准化Spring Cloud应用属性配置
|
|
|
- ✅ 创建多环境配置(dev、staging、prod)
|
|
|
-- ✅ 优化配置结构,消除重复代码
|
|
|
- ✅ 完整的文档和使用示例
|
|
|
|
|
|
---
|
|
|
|
|
|
-## ❓ 常见问题(FAQ)
|
|
|
-
|
|
|
-**Q: 如何添加新的微服务?**
|
|
|
-A: 在charts目录下创建新Chart,按照现有服务的结构创建Chart.yaml、values.yaml和templates,然后在Umbrella Chart的Chart.yaml中声明依赖。
|
|
|
+## ❓ 常见问题
|
|
|
|
|
|
-**Q: 能否修改应用的Spring属性?**
|
|
|
-A: 应用的基本属性(spring.application.name、spring.protocol.name、server.port)在configmap模板中固定。可以在config.yml中自定义logging和management端点配置。
|
|
|
+**Q: 如何修改服务端口?**
|
|
|
+A: 端口号固定在service.targetPort中,ConfigMap模板会自动生成正确的server.port值。
|
|
|
|
|
|
-**Q: 如何实现灰度部署?**
|
|
|
-A: 使用Helm分阶段升级,先更新特定服务的镜像标签,或通过kubectl打补丁逐步更新。
|
|
|
-
|
|
|
-**Q: base chart的版本如何管理?**
|
|
|
-A: 在Umbrella Chart的Chart.yaml中指定版本,提升base版本时更新所有依赖声明。
|
|
|
-
|
|
|
-**Q: 是否支持Helm values的继承?**
|
|
|
-A: 是的,子Chart的values会自动与全局values合并,同名参数子Chart优先级更高。
|
|
|
+**Q: 是否可以修改应用名称?**
|
|
|
+A: 应用名称固定为service name,在configmap模板中自动设置。
|
|
|
|
|
|
**Q: 如何只部署部分服务?**
|
|
|
-A: 使用--set选项禁用不需要的服务,如 `--set shop-recycle-payment.enabled=false`
|
|
|
-
|
|
|
----
|
|
|
-
|
|
|
-## 📞 支持
|
|
|
-
|
|
|
-遇到问题或有建议?
|
|
|
-
|
|
|
-- 提交Issue:https://github.com/jiangkai/microservice-helm/issues
|
|
|
-- 发起讨论:https://github.com/jiangkai/microservice-helm/discussions
|
|
|
+A: 使用`--set <service-name>.enabled=false`禁用不需要的服务。
|
|
|
|
|
|
---
|
|
|
|