🚀 部署指南 | Deployment Guide
本文档提供在 K3s 集群上部署服务的详细步骤和操作指南。
📋 前置准备 | Prerequisites
访问集群
确保已配置 kubectl 并能够访问 K3s 集群。
选择命名空间
根据服务类型选择合适的命名空间(npm / infra / apps / monitoring)。
🚀 快速部署 | Quick Deployment
部署基础设施服务
# 部署 PostgreSQL 数据库
kubectl apply -f manifests/infra/postgres/db.yaml
# 部署 Nginx Proxy Manager
kubectl apply -f manifests/infra/npm/npm.yaml
# 部署 Grafana 监控
kubectl apply -f manifests/infra/grafana/grafana.yaml
部署业务应用
# 部署 Ghost 博客
kubectl apply -f manifests/apps/ghost/ghost.yaml
# 部署 n8n 自动化工作流
kubectl apply -f manifests/apps/n8n/n8n.yaml
建议先部署基础设施服务(数据库、网关),再部署依赖这些服务的业务应用。
📊 查看服务状态 | Check Service Status
查看 Pod 状态
# 查看所有命名空间的 Pod
kubectl get pods -A
# 查看特定命名空间的 Pod
kubectl get pods -n apps
kubectl get pods -n infra
查看服务状态
# 查看所有命名空间的服务
kubectl get svc -A
# 查看特定服务的详细信息
kubectl describe svc <service-name> -n <namespace>
查看部署状态
# 查看所有部署
kubectl get deployments -A
# 查看特定部署的详细信息
kubectl describe deployment <deployment-name> -n <namespace>
🔍 故障排查 | Troubleshooting
# 查看 Pod 日志
kubectl logs <pod-name> -n <namespace>
# 查看 Pod 详细信息
kubectl describe pod <pod-name> -n <namespace>
# 检查 Service 配置
kubectl get svc -n <namespace>
# 检查 Ingress 配置
kubectl get ingress -n <namespace>
# 查看节点资源使用情况
kubectl top nodes
# 查看 Pod 资源使用情况
kubectl top pods -A
🏷️ 命名空间使用指南 | Namespace Usage
npm 命名空间
用于部署流量网关和管理服务:
kubectl apply -f manifests/infra/npm/ -n npm
infra 命名空间
用于部署基础设施服务(数据库、缓存等):
kubectl apply -f manifests/infra/postgres/ -n infra
kubectl apply -f manifests/infra/redis/ -n infra
apps 命名空间
用于部署业务应用:
kubectl apply -f manifests/apps/ghost/ -n apps
kubectl apply -f manifests/apps/n8n/ -n apps
monitoring 命名空间
用于部署监控系统:
kubectl apply -f manifests/infra/grafana/ -n monitoring
📝 部署检查清单 | Deployment Checklist
部署前请确认:
🔄 更新和回滚 | Update and Rollback
更新服务
# 更新部署配置
kubectl apply -f manifests/apps/ghost/ghost.yaml
# 查看更新状态
kubectl rollout status deployment/<deployment-name> -n <namespace>
回滚服务
# 查看部署历史
kubectl rollout history deployment/<deployment-name> -n <namespace>
# 回滚到上一个版本
kubectl rollout undo deployment/<deployment-name> -n <namespace>
# 回滚到指定版本
kubectl rollout undo deployment/<deployment-name> --to-revision=2 -n <namespace>
遇到问题?查看我们的 开发指南 或通过 GitHub Issues 联系团队。