K8S- Master节点扩容加入集群实操

发布时间:2026/10/11 1:57:29

K8S- Master节点扩容加入集群实操 Kubeadm Master节点扩容加入集群实操技术栈Kubernetes v1.32.13 Rocky Linux 8.6 Containerd 1.7.x Calico v3.27.x操作环境 / 对接原理 / 详细步骤 / 完整命令 / 配置文件 / 验证流程 / 排错方案Kubeadm Master节点扩容加入集群实操操作环境K8s 集群版本 v1.32.13操作系统 Rocky Linux 8.6内核 4.18.0-372.el8容器运行时 Containerd 1.7.13runc 1.1.12CNI 插件 1.4.0网络插件 Calico v3.27.4Pod CIDR 10.244.0.0/16Service CIDR 10.96.0.0/12节点间网络互通关闭 firewalld 或放行所需端口关闭 Swap 分区时间同步通过 chronyd 实现时区 Asia/ShanghaiSEinux 设置为 disabled内核参数 net.bridge.bridge-nf-call-iptables1对接原理Kubeadm 是 K8s 官方集群引导工具负责初始化控制平面APIServer、ControllerManager、Scheduler、etcd并以静态 Pod 形式运行于 /etc/kubernetes/manifests 目录。kubelet 以 systemd 服务运行管理节点 Pod 生命周期。Containerd 作为 CRI 运行时通过 unix socket 与 kubelet 对接。Calico 以 DaemonSet 部署通过 BGP 实现 Pod 跨节点互通通过 iptables/IPVS 实现 Service 负载均衡。详细步骤1. 生成节点加入命令# Master 上生成 token 和 hash kubeadm token create --print-join-command # 输出示例kubeadm join 192.168.1.100:6443 --token xxx --discovery-token-ca-cert-hash sha256:xxx2. Worker 节点加入集群# Worker 节点执行加入命令 kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef \ --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxx \ --cri-socket unix:///run/containerd/containerd.sock # Master 验证节点状态 kubectl get nodes -o wide3. 优雅剔除 Worker 节点# Master 上执行 kubectl drain worker01 --ignore-daemonsets --delete-emptydir-data --force kubectl delete node worker01 # Worker 上重置 kubeadm reset -f rm -rf /etc/cni/net.d /var/lib/kubelet /var/lib/dockershim iptables -F iptables -t nat -F iptables -t mangle -F iptables -X验证流程# 1. 节点状态验证 kubectl get nodes -o wide # 所有节点 STATUS 应为 Ready ​ # 2. 控制平面 Pod 验证 kubectl get pods -n kube-system # etcd、kube-apiserver、kube-controller-manager、kube-scheduler 均为 Running ​ # 3. 集群信息验证 kubectl cluster-info # Kubernetes control plane is running at https://apiserver:6443 ​ # 4. 组件版本验证 kubectl version --short # Server Version: v1.32.13 ​ # 5. Pod 网络连通性验证 kubectl run net-test --imagebusybox:1.36 --restartNever -- sleep 3600 kubectl exec net-test -- ping -c 3 10.96.0.10 ​ # 6. DNS 解析验证 kubectl exec net-test -- nslookup kubernetes.default.svc.cluster.local排错方案节点 NotReady查看 kubectl describe node确认 CNI 插件是否就绪检查 calico-node Pod 日志确认 Pod CIDR 与初始化参数一致kubelet 启动失败执行 journalctl -u kubelet -f 查看日志常见原因是 containerd socket 路径不匹配或 cgroup 驱动不一致containerd 需设 SystemdCgrouptrue镜像拉取失败确认 --image-repository 是否指定国内源或手动执行 kubeadm config images pull 预拉取CoreDNS CrashLoopBackOff通常为网络插件未就绪等待 Calico 部署完成后自动恢复检查 iptables 规则APIServer 连接超时检查 6443 端口是否监听防火墙是否放行etcd 是否健康etcdctl endpoint healthetcd 成员异常执行 etcdctl member list 确认成员状态检查数据目录 /var/lib/etcd 空间是否充足证书过期报错执行 kubeadm certs check-expiration 查看到期时间使用 kubeadm certs renew all 轮换后重启控制平面 Pod
延伸阅读

更多相关文章

2026/10/11 1:52:29

.NET 4.5.2 WPF公式编辑器核心实现:LaTeX解析与GlyphRun自绘排版

简介:这是一份可直接运行的C# WPF数学公式编辑器完整工程,基于.NET Framework 4.5.2构建,主要面向希望深入WPF桌面应用开发的学习者,也适用于教育、科研与论文排版中有公式编辑需求的用户。项目实现了公式输入、LaTeX/MathML解析与…

2026/10/11 2:47:31

EMC标准体系详解:通用标准与产品族标准如何选择

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 2:47:31

Netplan进阶实战:网桥、Bond、VLAN与策略路由一次搞定

netplan这个工具,第一篇写基础概念和静态IP配置的时候,就有人留言说“这些我都会,能不能聊点真正生产环境用得上的”。这篇就是接着那个话头往下走的。今天这篇我打算把网桥、Bond链路聚合、VLAN、Wi-Fi、策略路由这些进阶配置一次说透&#…

2026/10/11 2:47:31

PJ85718DM+PIC18LF4685温控系统:1-Wire高可靠低功耗设计实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 2:47:31

从ImageNet到多模态:视觉数据集构建与训练管线实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 2:47:31

蓝牙音频芯片选型:系统级权衡而非参数堆砌

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 0:02:13

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/11 0:02:13

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/11 0:02:13

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

2026/10/11 0:02:13

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/11 0:02:13

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/11 0:02:13

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑