高可用架构

高可用架构

集群架构

┌─────────────────────────────────────────────┐
│            Load Balancer (HA)               │
│        (keepalived + haproxy)               │
└───────────────┬─────────────────────────────┘
                │
    ┌───────────┴───────────┬─────────────┐
    │                       │             │
┌───▼────┐            ┌────▼───┐    ┌────▼───┐
│Master-1│            │Master-2│    │Master-3│
│  etcd  │            │  etcd  │    │  etcd  │
└────────┘            └────────┘    └────────┘
    │                       │             │
    └───────────┬───────────┴─────────────┘
                │
    ┌───────────┴───────────┬─────────────┐
    │                       │             │
┌───▼────┐            ┌────▼───┐    ┌────▼───┐
│Worker-1│            │Worker-2│    │Worker-N│
└────────┘            └────────┘    └────────┘

控制平面高可用

最低配置

  • Master 节点:3 个(奇数)
  • etcd 节点:3 个
  • Load Balancer:2 个(主备)

kubeadm 高可用部署

# 初始化第一个 Master
sudo kubeadm init \
  --control-plane-endpoint="lb.example.com:6443" \
  --upload-certs \
  --kubernetes-version=v1.30.0 \
  --pod-network-cidr=10.244.0.0/16

# 加入其他 Master 节点
sudo kubeadm join lb.example.com:6443 \
  --token <token> \
  --discovery-token-ca-cert-hash sha256:<hash> \
  --control-plane \
  --certificate-key <cert-key>

HAProxy 配置

# /etc/haproxy/haproxy.cfg
frontend k8s-api
    bind *:6443
    mode tcp
    default_backend k8s-api-backend

backend k8s-api-backend
    mode tcp
    balance roundrobin
    server master-1 192.168.1.11:6443 check
    server master-2 192.168.1.12:6443 check
    server master-3 192.168.1.13:6443 check

Keepalived 配置

# /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    virtual_ipaddress {
        192.168.1.100
    }
}

etcd 高可用

# 检查 etcd 集群状态
ETCDCTL_API=3 etcdctl \
  --endpoints=https://127.0.0.1:2379 \
  --cacert=/etc/kubernetes/pki/etcd/ca.crt \
  --cert=/etc/kubernetes/pki/etcd/server.crt \
  --key=/etc/kubernetes/pki/etcd/server.key \
  endpoint health

小结

✅ 高可用架构设计
✅ 控制平面 HA
✅ 负载均衡配置
✅ etcd 集群管理

下一节:容量规划。