跳到主要内容

后续演进

当前阶段完成混合云 Kubernetes 的基础链路后,后续按“Ansible 自动化收口、高可用、GitOps、可观测性、安全、恢复”推进。每个阶段都要保留实现命令、配置差异、验收命令和问题记录。

当前暂停状态

2026-06-11 已按验证环境收尾要求销毁两云测试资源:

aliyun: Destroy complete! Resources: 32 destroyed.
tencent: Destroy complete! Resources: 16 destroyed.

下一次恢复默认按 HA 规格继续:两云各 master_count = 3worker_count = 1。恢复前先确认 Terraform state 为空、旧 generated/ 产物不再作为事实来源,然后重新执行 Terraform output、Ansible inventory 和 SSH/ping 验证。

恢复后第一优先级仍是 HA kubeadm join:逐台加入额外 master,观察 etcd member 状态,确认 learner started 后再 promote。GitOps、监控、日志和备份恢复都等 HA 控制面可重复通过后再推进。

阶段 0:Ansible 自动化收口

目标:

  • Terraform 只管理云资源。
  • Ansible 管理系统初始化、WireGuard 和 kubeadm。
  • Shell scripts 暂时保留 Cilium、Cluster Mesh 和检查命令。
  • 本地统一验证入口可重复执行。

计划命令:

make verify-local
make ansible-ping
make ansible-bootstrap
make ansible-underlay
make ansible-kubeadm

验收:

make ansible-check
make check-underlay
make check-clusters

阶段 1:高可用控制面

目标:

  • 两云都支持多 master。
  • API LB 后端健康检查稳定。
  • kubeadm certificate key 和 join 命令可重复生成。
  • 任一 master 故障时,集群 API 仍可访问。

计划命令:

make aliyun-plan
make aliyun-apply
make aliyun-output
make tencent-plan
make tencent-apply
make tencent-output
make ansible-inventory
make ansible-bootstrap
make ansible-underlay
make ansible-kubeadm

验收:

kubectl --context aliyun-guangzhou get nodes -o wide
kubectl --context tencent-guangzhou get nodes -o wide
kubectl --context aliyun-guangzhou get endpoints kubernetes
kubectl --context tencent-guangzhou get endpoints kubernetes

真实节点验证(HA):将 master_count 从 1 改为 3 后,Terraform 创建新实例并更新 LB 后端。Ansible bootstrap 与 underlay 已覆盖所有新节点。kubeadm join --control-plane 受 etcd v3.6 learner 限制影响,不能并行 join 多台 master。需按“案例 9”逐台 join 并 promote learner,见 website/docs/operations/problem-solving.md

阶段 2:GitOps

目标:

  • 选择 Argo CD 或 Flux。
  • 建立 clusters/aliyunclusters/tencentapps/ 目录。
  • 用 Git 管理基础组件和示例应用。
  • Git 提交后自动同步到目标集群。

当前目录:

gitops/
├── clusters/
│ ├── aliyun/
│ └── tencent/
├── infrastructure/
│ ├── namespaces/
│ ├── monitoring/
│ └── logging/
└── apps/
└── demo/

验收:

kubectl --context aliyun-guangzhou -n argocd get pods
kubectl --context tencent-guangzhou -n argocd get pods
argocd app list
argocd app sync <app-name>

阶段 3:监控告警

目标:

  • 部署 Prometheus、Grafana、Alertmanager。
  • 采集节点、Pod、API Server、Cilium 指标。
  • 建立基础仪表盘和告警规则。

建议组件:

kube-prometheus-stack
cilium metrics
node-exporter
kube-state-metrics
Alertmanager

初始 values 位于 gitops/infrastructure/monitoring/kube-prometheus-stack-values.yaml

验收:

kubectl --context aliyun-guangzhou -n monitoring get pods
kubectl --context tencent-guangzhou -n monitoring get pods
kubectl --context aliyun-guangzhou -n monitoring port-forward svc/prometheus-operated 9090:9090
kubectl --context aliyun-guangzhou -n monitoring port-forward svc/grafana 3000:80

阶段 4:EFK 日志

目标:

  • Fluent Bit 采集容器日志。
  • Elasticsearch 或 OpenSearch 存储日志。
  • Kibana 或 OpenSearch Dashboards 查询日志。
  • 按集群、命名空间、Pod、容器维度检索。

验收:

kubectl --context aliyun-guangzhou -n logging get pods
kubectl --context tencent-guangzhou -n logging get pods
kubectl --context aliyun-guangzhou -n logging logs daemonset/fluent-bit

查询维度:

kubernetes.cluster_name
kubernetes.namespace_name
kubernetes.pod_name
kubernetes.container_name
log

当前默认低成本路线为 Fluent Bit + OpenSearch,初始 values 位于 gitops/infrastructure/logging/

阶段 5:安全加固

目标:

  • 收紧 admin_cidrs
  • 固定 WireGuard 来源。
  • 整理 RBAC。
  • 避免明文密钥进入 Git。
  • 记录云侧和集群侧审计入口。

验收:

terraform fmt -check -recursive
terraform -chdir=aliyun validate
terraform -chdir=tencent validate
kubectl auth can-i --list --context aliyun-guangzhou
kubectl auth can-i --list --context tencent-guangzhou

阶段 6:备份恢复

目标:

  • etcd 快照。
  • 关键命名空间资源导出。
  • 应用数据备份。
  • 恢复演练。

验收:

scripts/snapshot-etcd.sh aliyun
scripts/snapshot-etcd.sh tencent
kubectl --context aliyun-guangzhou -n kube-system get pods
kubectl --context tencent-guangzhou -n kube-system get pods

恢复演练必须记录:

  • 备份时间。
  • 备份对象。
  • 恢复命令。
  • 恢复后验证命令。
  • 遇到的问题。

阶段记录格式

每个新增阶段都按下面格式写回 plan.md 和 docs:

目标
修改文件
执行命令
验收命令
问题记录
回滚方式