5.8 KiB
5.8 KiB
K3s 基础设施部署总结
部署日期: 2026-01-30
已完成的基础设施组件
✅ 1. Helm 包管理工具
- 版本: v3.20.0
- 位置: /usr/local/bin/helm
- 配置: KUBECONFIG 已添加到 ~/.bashrc
✅ 2. Longhorn 分布式存储
- 版本: v1.11.0
- 命名空间: longhorn-system
- 存储类: longhorn (默认)
- S3 备份: 已配置 MinIO S3 备份
- 备份目标: s3://longhorn-backup@us-east-1/
- 凭证 Secret: longhorn-crypto
- 访问: http://longhorn.local
✅ 3. Redis 中间件
- 版本: Redis 7 (Alpine)
- 命名空间: redis
- 存储: 5Gi Longhorn 卷
- 持久化: RDB + AOF 双重持久化
- 内存限制: 2GB
- 访问: redis.redis.svc.cluster.local:6379
✅ 4. PostgreSQL 数据库
- 版本: PostgreSQL 16.11
- 命名空间: postgresql
- 存储: 10Gi Longhorn 卷
- 内存限制: 2GB
- 访问: postgresql-service.postgresql.svc.cluster.local:5432
- 凭证:
- 用户: postgres
- 密码: postgres123
✅ 5. Traefik Ingress 控制器
- 状态: K3s 默认已安装
- 命名空间: kube-system
- 已配置 Ingress:
- Longhorn UI: http://longhorn.local
- MinIO API: http://s3.u6.net3w.com
- MinIO Console: http://console.s3.u6.net3w.com
- Grafana: http://grafana.local
- Prometheus: http://prometheus.local
- Alertmanager: http://alertmanager.local
✅ 6. Prometheus + Grafana 监控系统
- 命名空间: monitoring
- 组件:
- Prometheus: 时间序列数据库 (20Gi 存储, 15天保留)
- Grafana: 可视化仪表板 (5Gi 存储)
- Alertmanager: 告警管理 (5Gi 存储)
- Node Exporter: 节点指标收集
- Kube State Metrics: K8s 资源状态
- Grafana 凭证:
- 用户: admin
- 密码: prom-operator
- 访问:
- Grafana: http://grafana.local
- Prometheus: http://prometheus.local
- Alertmanager: http://alertmanager.local
目录结构
/home/fei/k3s/009-基础设施/
├── 003-helm/
│ ├── install_helm.sh
│ └── readme.md
├── 004-longhorn/
│ ├── deploy.sh
│ ├── s3-secret.yaml
│ ├── values.yaml
│ ├── readme.md
│ └── 说明.md
├── 005-ingress/
│ ├── deploy-longhorn-ingress.sh
│ ├── longhorn-ingress.yaml
│ └── readme.md
└── 006-monitoring/
├── deploy.sh
├── values.yaml
├── ingress.yaml
└── readme.md
/home/fei/k3s/010-中间件/
├── 001-redis/
│ ├── deploy.sh
│ ├── redis-deployment.yaml
│ └── readme.md
└── 002-postgresql/
├── deploy.sh
├── postgresql-deployment.yaml
└── readme.md
存储使用情况
| 组件 | 存储大小 | 存储类 |
|---|---|---|
| MinIO | 50Gi | local-path |
| Redis | 5Gi | longhorn |
| PostgreSQL | 10Gi | longhorn |
| Prometheus | 20Gi | longhorn |
| Grafana | 5Gi | longhorn |
| Alertmanager | 5Gi | longhorn |
| 总计 | 95Gi | - |
访问地址汇总
需要在 /etc/hosts 中添加以下配置(将 <节点IP> 替换为实际 IP):
<节点IP> longhorn.local
<节点IP> grafana.local
<节点IP> prometheus.local
<节点IP> alertmanager.local
<节点IP> s3.u6.net3w.com
<节点IP> console.s3.u6.net3w.com
快速验证命令
# 查看所有命名空间的 Pods
kubectl get pods -A
# 查看所有 PVC
kubectl get pvc -A
# 查看所有 Ingress
kubectl get ingress -A
# 查看存储类
kubectl get storageclass
# 测试 Redis
kubectl exec -n redis $(kubectl get pod -n redis -l app=redis -o jsonpath='{.items[0].metadata.name}') -- redis-cli ping
# 测试 PostgreSQL
kubectl exec -n postgresql postgresql-0 -- psql -U postgres -c "SELECT version();"
备份策略
-
Longhorn 卷备份:
- 所有持久化数据存储在 Longhorn 卷上
- 可通过 Longhorn UI 创建快照
- 自动备份到 MinIO S3 (s3://longhorn-backup@us-east-1/)
-
数据库备份:
- Redis: AOF + RDB 持久化
- PostgreSQL: 可使用 pg_dump 进行逻辑备份
-
配置备份:
- 所有配置文件已保存在
/home/fei/k3s/目录 - 建议定期备份此目录
- 所有配置文件已保存在
下一步建议
-
安全加固:
- 修改 PostgreSQL 默认密码
- 配置 TLS/SSL 证书
- 启用 RBAC 权限控制
-
监控优化:
- 配置告警通知(邮件、Slack、钉钉)
- 导入更多 Grafana 仪表板
- 为 Redis 和 PostgreSQL 添加专用监控
-
高可用:
- 考虑 Redis 主从复制或 Sentinel
- 考虑 PostgreSQL 主从复制
- 增加 K3s 节点实现多节点高可用
-
日志收集:
- 部署 Loki 或 ELK 进行日志聚合
- 配置日志持久化和查询
-
CI/CD:
- 部署 GitLab Runner 或 Jenkins
- 配置自动化部署流程
维护命令
# 更新 Helm 仓库
helm repo update
# 升级 Longhorn
helm upgrade longhorn longhorn/longhorn --namespace longhorn-system -f values.yaml
# 升级监控栈
helm upgrade kube-prometheus-stack prometheus-community/kube-prometheus-stack --namespace monitoring -f values.yaml
# 查看 Helm 发布
helm list -A
# 清理未使用的镜像
kubectl get pods -A -o jsonpath='{range .items[*]}{.spec.containers[*].image}{"\n"}{end}' | sort -u
故障排查
如果遇到问题,请检查:
- Pod 状态:
kubectl get pods -A - 事件日志:
kubectl get events -A --sort-by='.lastTimestamp' - Pod 日志:
kubectl logs -n <namespace> <pod-name> - 存储状态:
kubectl get pvc -A - Longhorn 卷状态: 访问 http://longhorn.local
联系和支持
- Longhorn 文档: https://longhorn.io/docs/
- Prometheus 文档: https://prometheus.io/docs/
- Grafana 文档: https://grafana.com/docs/
- K3s 文档: https://docs.k3s.io/
部署完成!所有基础设施组件已成功运行。 🎉