K8S
1、项目总览
1.1、最终架构方案
1.2、IP分配规划
1.3、域名规划
1.4、CPU优化指南
1.5、云C部署指南
1.6、部署检查清单
1.7、快速参考手册
2.1、API-VIP高可用配置
2.2、Calico网络配置
2.3、存储方案配置
2.4、Ingress入口配置
2.5、安全加固配置
2.6、etcd优化配置
2.7、灾难恢复配置
2.8、公司网络配置
K8s部署
本文档使用 MrDoc 发布
-
+
首页
2.1、API-VIP高可用配置
# API Server高可用配置 ## 📖 说明 本文档提供Kubernetes API Server高可用方案的完整配置,包含三种可选方案。 ## 🎯 方案对比 | 方案 | 复杂度 | 可靠性 | 适用场景 | |------|-------|--------|---------| | **方案A:HAProxy本地监听** | ⭐⭐ | ⭐⭐⭐⭐⭐ | 推荐,自建集群 | | **方案B:DNS轮询** | ⭐ | ⭐⭐⭐ | 简单场景,无健康检查 | | **方案C:云厂商LB** | ⭐ | ⭐⭐⭐⭐⭐ | 云上集群 | ## 📄 完整配置 ```yaml # ======================================== # 方案A:HAProxy + 本地监听(推荐) # ======================================== # 每个节点运行HAProxy,监听本地WG IP的6443端口 # 后端轮询3个Master的真实API Server # /etc/haproxy/haproxy.cfg(每个节点) global log /dev/log local0 maxconn 4096 defaults mode tcp timeout connect 5s timeout client 30s timeout server 30s frontend k8s-api bind <本节点WGIP>:6443 # 如云A: 10.255.0.1:6443 default_backend k8s-api-backend backend k8s-api-backend balance roundrobin option tcp-check server master1 10.255.0.1:16443 check inter 2s fall 3 rise 2 server master2 10.255.0.2:16443 check inter 2s fall 3 rise 2 server master3 10.255.0.3:16443 check inter 2s fall 3 rise 2 # kubeadm配置改为: # controlPlaneEndpoint: "<本节点WGIP>:6443" # 每个节点使用自己的WG IP作为API入口 --- # ======================================== # 方案B:DNS轮询(简单但无健康检查) # ======================================== # CoreDNS配置 apiVersion: v1 kind: ConfigMap metadata: name: coredns namespace: kube-system data: Corefile: | k8s.ktnet.cc:53 { hosts { 10.255.0.1 k8s.ktnet.cc 10.255.0.2 k8s.ktnet.cc 10.255.0.3 k8s.ktnet.cc ttl 5 } loadbalance round_robin } # kubeadm配置改为: # controlPlaneEndpoint: "k8s.ktnet.cc:6443" --- # ======================================== # 方案C:云厂商LB(最可靠但需公网暴露) # ======================================== # 使用云A的负载均衡器,监听公网IP # 后端添加3个Master的6443端口(通过云内网) # kubeadm配置: # controlPlaneEndpoint: "<云LB公网IP>:6443" # 安全加固: # 1. LB仅允许WireGuard网段访问 # 2. 云安全组限制来源IP # 3. 启用TLS客户端证书认证 ``` ## 🔧 部署步骤 ### 方案A:HAProxy部署 ```bash # 1. 安装HAProxy(所有节点) apt install -y haproxy # 2. 配置HAProxy cat > /etc/haproxy/haproxy.cfg <<'EOF' # 复制上面的配置,修改<本节点WGIP> EOF # 3. 启动HAProxy systemctl enable --now haproxy systemctl status haproxy # 4. 验证 nc -zv <本节点WGIP> 6443 ``` ### 方案B:DNS轮询 ```bash # 应用CoreDNS配置 kubectl apply -f 2.1、API-VIP高可用配置.md # 验证DNS解析 nslookup k8s.ktnet.cc <coredns-ip> ``` ## ⚠️ 注意事项 - **HAProxy方案**:每个节点需要运行HAProxy,占用约50MB内存 - **DNS方案**:无健康检查,Master故障需手动处理 - **云LB方案**:需要云厂商支持,有额外成本 - **端口规划**:真实API Server使用16443,HAProxy监听6443 ## 📁 原始文件 原始YAML配置文件位于:`solutions/api-vip-fix.yaml` ## 🔗 相关文档 - 架构方案:[1.1、最终架构方案.md](./1.1、最终架构方案.md) - 网络规划:[1.2、IP分配规划.md](./1.2、IP分配规划.md) - 部署指南:[1.5、云C部署指南.md](./1.5、云C部署指南.md) --- **更新时间:** 2025-01-22
arise
2025年11月22日 09:49
转发文档
收藏文档
‹‹
‹
9
/ 17
›
››
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码