当前位置: 首页 > news >正文

云计算k8s集群部署配置问题总结

根据 Kubernetes 多控制平面节点的标准实践,必须修改其他 master 节点的 advertiseAddress 为各自独立的静态 IP。以下是详细解释和操作建议:


核心结论

必须修改:每个控制平面节点应具有唯一的 advertiseAddress(对应自身固定 IP),而非重复使用同一 IP。
⚠️ 不修改的风险:可能导致以下问题:

  • 端口冲突:多个 API Server 尝试绑定同一 IP+Port;
  • 脑裂风险:不同控制平面节点互相干扰;
  • 证书校验失败:TLS 证书与实际访问 IP 不匹配;
  • 服务发现异常:工作节点无法稳定访问正确的控制平面。

具体操作指南

🔧 Step 1: 规划控制平面 IP 方案
节点角色主机名固定 IPadvertiseAddress 设置值
Master Node 1k8s-master01192.168.170.151192.168.170.151
Master Node 2k8s-master02192.168.170.152→ 修改为 192.168.170.152
Master Node 3k8s-master03192.168.170.153→ 修改为 192.168.170.153
📌 Step 2: 修改配置文件

在所有新增的控制平面节点上执行以下操作:

# /root/kubeadm-config.yaml 示例片段
localAPIEndpoint:advertiseAddress: <该节点专属IP>  # e.g. 192.168.170.152 (for master02)bindPort: 6443                    # 保持默认即可
🛡️ Step 3: 确保配套措施同步更新
项目要求
主机名解析所有节点的 /etc/hosts 需包含所有控制平面节点的 IP ↔ 主机名映射
DNS 正向解析内部 DNS 服务器需为每个控制平面 IP 提供 A 记录(如 api.cluster → LB VIP)
负载均衡器配置若使用硬件负载均衡器,需将所有控制平面 IP 加入后端池
防火墙规则开放所有控制平面 IP 的 6443/TCP 端口

关键注意事项

⚙️ 技术细节说明

1️⃣ 为什么不能用相同 IP?

  • advertiseAddress 决定 API Server 对外暴露的监听地址;
  • 如果两个节点使用同一 IP,后启动的节点会因端口已被占用而启动失败;
  • TLS 引导证书中嵌入了节点 IP 信息,重复会导致证书校验错误。

2️⃣ controlPlaneEndpoint 的区别

  • controlPlaneEndpoint: 集群级别的虚拟入口(通常配合负载均衡器使用);
  • advertiseAddress: 单个控制平面节点的实际服务地址;
  • 两者可以不同(推荐通过负载均衡器统一入口)。

3️⃣ 动态 IP 的风险
❗ 如果使用 DHCP 分配 IP,一旦重启导致 IP 变化,集群将不可用!
👉 强制要求:所有控制平面节点必须使用静态 IP。


验证方法

完成配置后,可通过以下命令验证各节点状态:

# 在任意节点查看集群成员列表
kubectl get nodes -o wide# 检查控制平面组件运行状态
kubectl get pods -n kube-system --field-selector=observed_phase=Running

总结

场景是否正确做法
单 Master 集群无需修改(仅一个控制平面节点)
多 Master 高可用集群✔️ 每个节点必须使用唯一 IP
跨机房/云厂商混合部署✔️ 不同机房节点使用各自专线 IP
使用虚拟 IP(VIP)作为入口✔️ 但底层仍需真实 IP 支撑

请根据您的实际网络环境选择合适方案,并确保所有控制平面节点使用静态 IP。

http://www.dtcms.com/a/310326.html

相关文章:

  • 铁皮矫平机冷知识·第三弹
  • 网站QPS多少才算高并发
  • A∗算法(A-star algorithm)一种在路径规划和图搜索中广泛使用的启发式搜索算法
  • 利用CompletableFuture优化查询效率
  • 1.2.4 砌体结构设计构造要求
  • Dify知识库分段策略详解:通用分段 vs 父子分段
  • 开源框架推荐:API数据批处理与爬虫集成
  • 前端开发一百问(动态更新)
  • 【0基础PS】PS工具详解--仿制图章工具
  • RustFS:高性能文件存储与部署解决方案(MinIO替代方案)
  • MySQL锁的分类 MVCC和S/X锁的互补关系
  • QT6.5.3 vs2022 pcl1.14.1窗体界面打开pcd点云文件
  • PAT 1022 Digital Library
  • nodejs最近开发过程中的总结
  • 【LeetCode】算法详解#11 ---相交链表
  • 智能Agent场景实战指南 Day 29:Agent市场趋势与前沿技术
  • 一篇文章读懂AI Agent(智能体)
  • spring boot 启动报错---java: 无法访问org.springframework.boot.SpringApplication 错误的类文件
  • 获取LLM 内部的结构信息和矩阵维度信息
  • LeetCode 热题100:206. 反转链表
  • 【AI问答】PromQL中interval和rate_interval的区别以及Grafana面板的配置建议
  • 从本地到云端:将Linux文件夹上传至GitHub仓库的完整指南
  • 动态爱心树
  • 商汤悟能具身智能平台让机器人「觉醒」
  • Mysql 实战问题处理速通
  • 《操作系统真象还原》 第五章 保护模式进阶
  • h5独立部署
  • Galaxea机器人由星海图人工智能科技有限公司研发的高性能仿人形机器人
  • 国内短剧CSP系统开发:技术架构与合规实践全解析
  • GESP2025年6月认证C++八级( 第三部分编程题(1)树上旅行)