环境准备
开始前先把工具、账号、SSH 和费用边界准备好。这个项目会创建真实云资源,任何“先试一下”的操作都可能产生费用。
本地工具
| 工具 | 用途 | 检查命令 |
|---|---|---|
| Terraform | 创建两云基础资源 | terraform version |
| Ansible | 初始化节点、WireGuard、kubeadm | ansible-playbook --version |
| Make | 串联常用操作入口 | make --version |
| jq | 处理 Terraform JSON outputs | jq --version |
| kubectl | 检查 Kubernetes 集群 | kubectl version --client |
| Helm | 安装 Cilium chart | helm version |
| Cilium CLI | 检查 Cilium 和 Cluster Mesh | cilium version --client |
| SSH | 登录云服务器执行 bootstrap | ssh -V |
云账号权限
阿里云侧至少需要创建和读取 VPC、交换机、ECS、安全组、负载均衡、可选 VPN 等资源的权限。腾讯云侧至少需要创建和读取 VPC、子网、CVM、安全组、负载均衡、可选 VPN 等资源的权限。
建议使用环境变量或本地凭据配置注入云账号权限,不要把访问凭据写入 terraform.tfvars、Markdown 或截图。
SSH key
建议为这个项目单独创建 SSH key:
ssh-keygen -t ed25519 -f ~/.ssh/hybrid-k8s -C "hybrid-k8s"
变量文件里只引用公钥路径:
ssh_public_key_path = "~/.ssh/hybrid-k8s.pub"
Ansible 默认读取 ~/.ssh/hybrid-k8s,也可以用环境变量覆盖:
export SSH_KEY=~/.ssh/hybrid-k8s
测试环境节点可能频繁重建,Ansible inventory 默认关闭严格 host key 检查,避免旧 known_hosts 阻塞自动化。生产环境应改回可信主机指纹校验。
网络与安全边界
admin_cidrs应该写自己的固定公网出口,例如203.0.113.10/32。- 临时排障时才考虑扩大来源范围,排障结束后立刻收紧。
- WireGuard 默认使用 UDP
51820。 - Cluster Mesh API 使用固定 NodePort
32379,便于两云负载均衡和安全组规则对齐。
费用准备
阶段一推荐低成本测试路线:
- 两云各
1 master + 1 worker。 - ECS/CVM 使用抢占式或竞价实例。
- 云厂商托管 VPN Gateway 默认关闭。
- 验证完成后执行销毁命令,或至少停机并收紧公网来源。
开工前检查
terraform version
ansible-playbook --version
ansible-inventory --version
jq --version
kubectl version --client
helm version
cilium version --client
ssh -V
这些命令都通过后,再进入 快速开始。