# 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 ``` ## 快速验证命令 ```bash # 查看所有命名空间的 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();" ``` ## 备份策略 1. **Longhorn 卷备份**: - 所有持久化数据存储在 Longhorn 卷上 - 可通过 Longhorn UI 创建快照 - 自动备份到 MinIO S3 (s3://longhorn-backup@us-east-1/) 2. **数据库备份**: - Redis: AOF + RDB 持久化 - PostgreSQL: 可使用 pg_dump 进行逻辑备份 3. **配置备份**: - 所有配置文件已保存在 `/home/fei/k3s/` 目录 - 建议定期备份此目录 ## 下一步建议 1. **安全加固**: - 修改 PostgreSQL 默认密码 - 配置 TLS/SSL 证书 - 启用 RBAC 权限控制 2. **监控优化**: - 配置告警通知(邮件、Slack、钉钉) - 导入更多 Grafana 仪表板 - 为 Redis 和 PostgreSQL 添加专用监控 3. **高可用**: - 考虑 Redis 主从复制或 Sentinel - 考虑 PostgreSQL 主从复制 - 增加 K3s 节点实现多节点高可用 4. **日志收集**: - 部署 Loki 或 ELK 进行日志聚合 - 配置日志持久化和查询 5. **CI/CD**: - 部署 GitLab Runner 或 Jenkins - 配置自动化部署流程 ## 维护命令 ```bash # 更新 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 ``` ## 故障排查 如果遇到问题,请检查: 1. Pod 状态: `kubectl get pods -A` 2. 事件日志: `kubectl get events -A --sort-by='.lastTimestamp'` 3. Pod 日志: `kubectl logs -n ` 4. 存储状态: `kubectl get pvc -A` 5. Longhorn 卷状态: 访问 http://longhorn.local ## 联系和支持 - Longhorn 文档: https://longhorn.io/docs/ - Prometheus 文档: https://prometheus.io/docs/ - Grafana 文档: https://grafana.com/docs/ - K3s 文档: https://docs.k3s.io/ --- **部署完成!所有基础设施组件已成功运行。** 🎉