|
|
2 kuukautta sitten | |
|---|---|---|
| .. | ||
| templates | 2 kuukautta sitten | |
| Chart.yaml | 2 kuukautta sitten | |
| README.md | 2 kuukautta sitten | |
| values-dev.yaml | 2 kuukautta sitten | |
| values-prod.yaml | 2 kuukautta sitten | |
| values-staging.yaml | 2 kuukautta sitten | |
| values-test.yaml | 2 kuukautta sitten | |
| values.yaml | 2 kuukautta sitten | |
| values.yaml.bak | 2 kuukautta sitten | |
完整的Spring Cloud日志测试演示系统的Kubernetes Helm部署模板。
shop-recycle/
├── Chart.yaml # Chart metadata
├── values.yaml # 默认全局配置
├── values-dev.yaml # DEV环境配置
├── values-test.yaml # TEST环境配置
├── values-staging.yaml # STAGING环境配置
├── values-prod.yaml # PROD环境配置
└── templates/
├── _helpers.tpl # 模板辅助函数
├── NOTES.txt # 部署后提示信息
├── deployment-gateway.yaml # Gateway Deployment
├── deployment-order-service.yaml # OrderService Deployment
├── deployment-payment-service.yaml # PaymentService Deployment
├── service.yaml # 所有Services
├── configmap-gateway.yaml # Gateway ConfigMap
├── ingress.yaml # Ingress
├── rbac.yaml # ServiceAccount & ClusterRole
└── networkpolicy.yaml # NetworkPolicy(可选)
# 验证chart
helm lint shop-recycle
# 检查渲染后的模板
helm template shop-recycle . -f values-dev.yaml
# 部署
helm install shop-recycle . \
-f values.yaml \
-f values-dev.yaml \
--set image.tag=1.0.0-001-abc123 \
-n dev \
--create-namespace
# 查看部署状态
kubectl get pods -n dev
helm install shop-recycle . \
-f values.yaml \
-f values-test.yaml \
--set image.tag=1.0.0-002-def456 \
-n test \
--create-namespace
helm install shop-recycle . \
-f values.yaml \
-f values-staging.yaml \
--set image.tag=1.0.0-release \
-n staging \
--create-namespace
helm install shop-recycle . \
-f values.yaml \
-f values-prod.yaml \
--set image.tag=v1.0.0 \
-n prod \
--create-namespace
# 更新镜像版本
helm upgrade shop-recycle . \
-f values.yaml \
-f values-${ENVIRONMENT}.yaml \
--set image.tag=<new-tag>
# 使用原子更新(失败时自动回滚)
helm upgrade shop-recycle . \
-f values.yaml \
-f values-${ENVIRONMENT}.yaml \
--set image.tag=<new-tag> \
--atomic \
--timeout 10m
# 查看发布历史
helm history shop-recycle -n dev
# 回滚到上一个版本
helm rollback shop-recycle -n dev
# 回滚到指定版本
helm rollback shop-recycle 3 -n dev
helm uninstall shop-recycle -n dev
# 删除命名空间(可选)
kubectl delete namespace dev
| 参数 | 说明 | 默认值 |
|---|---|---|
environment |
环境标识 | dev |
image.registry |
Docker仓库地址 | docker.io |
image.namespace |
Docker命名空间 | shop-recycle |
image.tag |
镜像标签 | 由Pipeline注入 |
replicaCount |
副本数 | 2 |
| 参数 | 说明 | 默认值 |
|---|---|---|
gateway.enabled |
启用Gateway | true |
gateway.replicaCount |
Gateway副本数 | 2 |
gateway.javaOpts |
JVM参数 | -Xms256m -Xmx512m |
gateway.resources |
资源限制 | requests: 256Mi/250m, limits: 512Mi/500m |
| 参数 | 说明 | 默认值 |
|---|---|---|
orderService.enabled |
启用OrderService | true |
orderService.replicaCount |
副本数 | 2 |
orderService.javaOpts |
JVM参数 | -Xms256m -Xmx512m |
| 参数 | 说明 | 默认值 |
|---|---|---|
paymentService.enabled |
启用PaymentService | true |
paymentService.replicaCount |
副本数 | 2 |
paymentService.javaOpts |
JVM参数 | -Xms256m -Xmx512m |
每个服务都配置了:
如果启用监控,Prometheus将抓取:
curl http://localhost:8080/actuator/prometheus
# 查看Gateway日志
kubectl logs -n dev -l app=shop-recycle-gateway --tail=100 -f
# 查看OrderService日志
kubectl logs -n dev -l app=shop-recycle-order-service --tail=100 -f
# 跨所有Pod查看日志
kubectl logs -n dev -l app.kubernetes.io/instance=shop-recycle --all-containers=true -f
如果启用了Ingress:
# 获取Ingress信息
kubectl get ingress -n dev
# 通过域名访问(需要配置DNS或hosts文件)
curl http://dev-gateway.local
# 端口转发
kubectl port-forward svc/shop-recycle-gateway 8080:8080 -n dev
# 通过localhost访问
curl http://localhost:8080
# 检查Pod状态
kubectl describe pod <pod-name> -n dev
# 查看Pod日志
kubectl logs <pod-name> -n dev
# 检查事件
kubectl get events -n dev --sort-by='.lastTimestamp'
# 进入Pod检查服务
kubectl exec -it <pod-name> -n dev -- sh
# 在Pod内测试健康端点
curl http://localhost:8080/health
# 检查镜像拉取策略
kubectl get deployment shop-recycle-gateway -n dev -o yaml | grep image
# 手动拉取镜像测试
docker pull docker.io/shop-recycle/gateway:tag
Jenkins Pipeline会自动:
参考 /Jenkinsfile 了解详情。
遇到问题?
kubectl logs -n <namespace> -l app=shop-recyclekubectl get pods -n <namespace>helm get values shop-recycle -n <namespace>