Kubernetes 企业级全本地私有化基础设施最佳实践架构
设计原则:全部基础设施本地自建、零外部公有云依赖、离线可用、安全闭环、可运维、可观测、CI/CD闭环;适配自建机房/私有云/VMware/物理机部署。
下面分为:架构分层说明 + 文字版架构图(Mermaid可直接渲染) + 组件清单 + 网络流向 + 部署选型推荐 + 高可用要点
一、整体分层架构(由外到内)
┌─────────────────────────────────────────────────────────────────┐
│ 用户接入层 (安全入口) │
│ 堡垒机 / OIDC‑SSO统一登录、RBAC权限、反向代理(Nginx‑Ingress) │
├─────────────────────────────────────────────────────────────────┤
│ 开发&DevOps工具平台层(全本地自建) │
│ 代码仓库(GitLab/Gitea)|制品镜像仓库(Harbor)|Helm仓库|文档库 │
│ CI/CD流水线(GitLab‑CI / Jenkins)|制品扫描|漏洞扫描|配置中心 │
├─────────────────────────────────────────────────────────────────┤
│ 可观测平台层(本地,不上传外网) │
│ Prometheus+Grafana监控 | Loki日志 | Tempo链路追踪 |告警中心 │
│ 仪表盘面板(K8M / Kubernetes‑Dashboard)|日志采集(Promtail) │
├─────────────────────────────────────────────────────────────────┤
│ Kubernetes 容器编排集群层(业务集群) │
│ 控制平面: 3‑Master(etcd集群高可用) |多Worker工作节点 │
│ 网络插件(Calico)|存储类(本地存储/CSI‑NAS/CEPH‑RBD) │
│ 网关(Istio/APISIX)|配置管理(ArgoCD/GitOps)|密钥管理(Vault) │
├─────────────────────────────────────────────────────────────────┤
│ 底层基础设施资源层 │
│ 物理服务器 / 虚拟化 / 私有云|负载均衡|存储|内网DNS|NTP时间服务器 │
└─────────────────────────────────────────────────────────────────┘
二、可渲染 Mermaid 架构图(复制到 Obsidian/Mermaid‑live 即可生成可视化图)
三、组件选型推荐表(企业私有化本地版)
| 模块 | 推荐自建本地组件 | 替代选项 | 作用 |
|---|---|---|---|
| 代码仓库 | GitLab | Gitea / Gogs | 私有Git代码托管,无需访问GitHub |
| 容器镜像仓库 | Harbor | Registry + UI | 镜像存储、漏洞扫描、项目隔离、Helm Chart仓库 |
| CI/CD流水线 | Jenkins | GitLab‑CI | 编译、打包、单元测试、镜像构建 |
| GitOps交付 | ArgoCD | FluxCD | 声明式部署K8s应用,以代码驱动集群变更 |
| 集群可视化面板 | K8M | Kubernetes‑Dashboard | 多集群管理、AI排障、web终端 |
| 监控告警 | Prometheus+Grafana+Alertmanager | VictoriaMetrics | 指标监控、大盘、告警 |
| 日志系统 | Loki+Promtail+Grafana | ELK(Elasticsearch) | 集群日志采集查询,全部本地存储 |
| 链路追踪 | Tempo | Jaeger | 微服务调用追踪 |
| 账号统一认证 | Keycloak | Dex+OIDC | 所有平台单点登录,统一RBAC |
| 密钥管理 | HashiCorp Vault | Sealed‑Secrets | 数据库密码、token等敏感信息保管,不存yaml明文 |
| 对象存储 | MinIO | Ceph RGW | 文件、制品、备份文件本地对象存储 |
| 存储CSI | Ceph‑RBD / Longhorn | OpenEBS | K8s持久化存储PV |
| 服务网关 | APISIX / Nginx‑Ingress | Istio(服务网格) | 流量入口,路由,限流 |
| 堡垒机 | JumpServer | Teleport | 运维跳板访问服务器和集群 |
四、推荐集群拆分最佳实践(生产不要单集群大包大揽)
企业级最佳实践:环境隔离,集群拆分,而不是一个K8s集群跑所有环境
- DevOps基础设施集群(独立集群)
专门跑:GitLab、Harbor、Jenkins、ArgoCD、Prometheus、Loki、K8M、MinIO、Vault基础设施不和业务混跑,避免业务故障拖垮DevOps平台
- 开发环境业务集群
- 测试/预发环境业务集群
- 生产环境业务集群
K8M部署在基础设施集群,统一纳管:开发、测试、预发、生产多个业务集群。完美匹配你前面关心的 K8M 多集群管理场景。
五、数据流完整闭环流程(本地全链路,无外网)
- 开发提交代码 → 本地GitLab代码仓库
- GitLab触发Jenkins CI流水线 → 编译构建镜像 → 推送到本地Harbor镜像仓库
- Harbor镜像漏洞扫描
- ArgoCD监测Git部署清单变更 → 从Harbor拉取镜像部署到对应K8s业务集群
- K8M运维面板查看所有集群状态,排查故障
- Prometheus+Loki采集业务指标、日志 → 本地可视化大盘、告警
六、高可用硬性要求清单
- K8s控制平面 3节点,etcd集群独立三副本
- Harbor、GitLab、Jenkins、MinIO全部做高可用部署
- 所有持久化数据(代码、镜像、日志、监控数据)配置定期本地备份
- 内网DNS、NTP自建,集群节点禁止依赖外网DNS
- 所有组件使用内部镜像源,离线镜像包,完全切断外网依赖
如果你需要,我可以输出一份:这套架构对应的资源规划表(CPU/内存/磁盘)+ 基础设施集群可直接部署的yaml清单。