项目介绍
IaC/GitOps 混合云 Kubernetes 高可用集群 是一个从云资源到 Kubernetes 多集群网络的完整工程项目。项目当前先在阿里云广州和腾讯云广州各创建一套低成本集群,用 Terraform 管理基础设施,用 kubeadm 初始化 Kubernetes,用 WireGuard 打通跨云节点网络,用 Cilium 提供 CNI 和 Cluster Mesh。后续继续扩展到高可用控制面、GitOps 应用交付、监控告警、EFK 日志和备份恢复。
这个项目的重点不是把几个工具放在一起,而是把每个工具放在清晰边界里:
- Terraform 负责云资源生命周期和 outputs。
- Makefile 负责把常用操作固化成稳定入口。
- Shell 脚本负责节点初始化、WireGuard、kubeadm、Cilium 这些过程化动作。
- Kubernetes 和 Cilium 负责集群运行时与跨集群服务网络。
- 文档负责记录从 0 复现、代码结构、排障证据和后续演进。
技术栈联动
| 技术 | 在项目里的位置 | 体现的工程能力 |
|---|---|---|
| Terraform | aliyun/、tencent/、modules/ | 用 IaC 建模云资源、变量、模块、输出和状态 |
| 阿里云 | ECS、VPC、VSwitch、安全组、SLB | 理解云网络、实例、负载均衡和访问控制 |
| 腾讯云 | CVM、VPC、Subnet、安全组、CLB | 对比不同云厂商 API 和资源模型 |
| kubeadm | scripts/render-kubeadm-config.sh、初始化脚本 | 从裸云服务器搭建 Kubernetes |
| Cilium | Helm values、Cluster Mesh | CNI、VXLAN tunnel、多集群服务发现 |
| WireGuard | scripts/setup-wireguard-underlay.sh | 跨云节点级 underlay 和网络排障 |
| Helm | Cilium 安装 | 用 chart 管理集群组件 |
| Makefile | 根目录 Makefile | 固化复杂命令,降低复现成本 |
当前阶段
当前阶段使用低成本验证规模:
| 项目 | 阿里云 | 腾讯云 |
|---|---|---|
| 地域 | cn-guangzhou | ap-guangzhou |
| 节点 | 1 master + 1 worker | 1 master + 1 worker |
| VPC CIDR | 10.1.0.0/16 | 10.2.0.0/16 |
| Pod CIDR | 172.16.0.0/16 | 172.17.0.0/16 |
| Service CIDR | 10.96.0.0/16 | 10.97.0.0/16 |
| Underlay | WireGuard 10.255.0.0/24 | WireGuard 10.255.0.0/24 |
| Cluster Mesh | NodePort 32379 | NodePort 32379 |
后续高可用阶段会扩展 master 数量、完善 API 入口、接入 GitOps 和可观测性组件。
工程边界
Terraform 不直接管理 kubeadm、Cilium、Cluster Mesh 的内部状态。原因是云资源生命周期和集群内组件生命周期不同,强行塞进一次 terraform apply 会让排障边界变模糊。项目把两者通过 outputs 和脚本连接: