跳到主要内容

项目介绍

IaC/GitOps 混合云 Kubernetes 高可用集群 是一个从云资源到 Kubernetes 多集群网络的完整工程项目。项目当前先在阿里云广州和腾讯云广州各创建一套低成本集群,用 Terraform 管理基础设施,用 kubeadm 初始化 Kubernetes,用 WireGuard 打通跨云节点网络,用 Cilium 提供 CNI 和 Cluster Mesh。后续继续扩展到高可用控制面、GitOps 应用交付、监控告警、EFK 日志和备份恢复。

这个项目的重点不是把几个工具放在一起,而是把每个工具放在清晰边界里:

  • Terraform 负责云资源生命周期和 outputs。
  • Makefile 负责把常用操作固化成稳定入口。
  • Shell 脚本负责节点初始化、WireGuard、kubeadm、Cilium 这些过程化动作。
  • Kubernetes 和 Cilium 负责集群运行时与跨集群服务网络。
  • 文档负责记录从 0 复现、代码结构、排障证据和后续演进。

技术栈联动

技术在项目里的位置体现的工程能力
Terraformaliyun/tencent/modules/用 IaC 建模云资源、变量、模块、输出和状态
阿里云ECS、VPC、VSwitch、安全组、SLB理解云网络、实例、负载均衡和访问控制
腾讯云CVM、VPC、Subnet、安全组、CLB对比不同云厂商 API 和资源模型
kubeadmscripts/render-kubeadm-config.sh、初始化脚本从裸云服务器搭建 Kubernetes
CiliumHelm values、Cluster MeshCNI、VXLAN tunnel、多集群服务发现
WireGuardscripts/setup-wireguard-underlay.sh跨云节点级 underlay 和网络排障
HelmCilium 安装用 chart 管理集群组件
Makefile根目录 Makefile固化复杂命令,降低复现成本

当前阶段

当前阶段使用低成本验证规模:

项目阿里云腾讯云
地域cn-guangzhouap-guangzhou
节点1 master + 1 worker1 master + 1 worker
VPC CIDR10.1.0.0/1610.2.0.0/16
Pod CIDR172.16.0.0/16172.17.0.0/16
Service CIDR10.96.0.0/1610.97.0.0/16
UnderlayWireGuard 10.255.0.0/24WireGuard 10.255.0.0/24
Cluster MeshNodePort 32379NodePort 32379

后续高可用阶段会扩展 master 数量、完善 API 入口、接入 GitOps 和可观测性组件。

工程边界

Terraform 不直接管理 kubeadm、Cilium、Cluster Mesh 的内部状态。原因是云资源生命周期和集群内组件生命周期不同,强行塞进一次 terraform apply 会让排障边界变模糊。项目把两者通过 outputs 和脚本连接:

阅读顺序

  1. 架构设计:先看整体拓扑和演进方向。
  2. 快速开始:按命令从 0 复现当前阶段。
  3. 从零实现过程:理解项目目录、文件和命令如何从空目录长出来。
  4. 代码走读:逐类解释 Terraform、脚本、Makefile 和文档站。
  5. 问题定位与实战经验:按层排障。
  6. 后续演进:查看高可用、GitOps、监控、EFK 的扩展路线。