Node 和 Cluster部署

发布时间:2026/10/22 17:44:07

Node 和 Cluster部署 Node and Cluster学习参考Node查看节点# 查看集群所有节点清单输出列NAME 节点名、STATUS 状态、ROLES 角色control-plane 为控制面、AGE 运行时长、VERSION 版本rootmaster30:~# kubectl get nodesNAME STATUS ROLES AGE VERSION master30.laoma.cloud Ready control-plane 21d v1.30.2 worker31.laoma.cloud Readynone21d v1.30.2 worker32.laoma.cloud Readynone21d v1.30.2# 查看特定节点详细信息describe 输出资源详情node 指定节点名 worker31.laoma.cloudrootmaster30:~# kubectl describe node worker31.laoma.cloud删除节点以 worker31 节点为例。# 设置节点为维护模式排空drain 标记节点不可调度并驱逐其上的 Pod--ignore-daemonsets 忽略 DaemonSet 管理的 Podcalico-node、kube-proxy 等不参与驱逐rootmaster30:~# kubectl drain worker31.laoma.cloud --ignore-daemonsetsnode/worker31.laoma.cloud cordoned# 已对节点执行封锁cordon新 Pod 不再调度到该节点Warning: ignoring DaemonSet-managed Pods: kube-system/calico-node-v8jdn, kube-system/kube-proxy-27vl2# 警告DaemonSet 管理的 Pod 被忽略、不驱逐evicting pod kube-system/calico-kube-controllers-7cb4fd5784-jx2xl# 正在驱逐普通控制器创建的 Podpod/calico-kube-controllers-7cb4fd5784-jx2xl evicted# 该 Pod 已被驱逐node/worker31.laoma.cloud drained# 节点已排空完成可安全下线# 再次查看节点确认 worker31 已禁用调度rootmaster30:~# kubectl get nodesNAME STATUS ROLES AGE VERSION master30.laoma.cloud Ready control-plane 41h v1.30.2 worker31.laoma.cloud Ready,SchedulingDisablednone41h v1.30.2 worker32.laoma.cloud Readynone41h v1.30.2# worker31 的 STATUS 变为 Ready,SchedulingDisabled就绪但已关闭调度# 删除 worker31 节点delete node 将该节点对象从集群中移除rootmaster30:~# kubectl delete node worker31.laoma.cloudnodeworker31.laoma.clouddeleted# 节点对象已删除# 删除后再次查看节点列表rootmaster30:~# kubectl get nodesNAME STATUS ROLES AGE VERSION master30.laoma.cloud Ready control-plane 41h v1.30.2 worker32.laoma.cloud Readynone41h v1.30.2# 列表中已无 worker31# 在被删除的 worker31 节点上重置本机 kubeadm 配置reset 还原 kubeadm 所做的操作-f 强制重置、不交互确认rootworker31:~# kubeadm reset -f[preflight]Running pre-flight checks# 执行重置前检查W1019 07:37:44.2420237660removeetcdmember.go:106][reset]No kubeadm config, using etcd pod spec to get data directory# 警告未找到 kubeadm 配置按 etcd Pod 模板推断数据目录[reset]Deleted contents of the etcd data directory: /var/lib/etcd# 已删除 etcd 数据目录[reset]Stopping the kubeletservice# 已停止 kubelet 服务[reset]Unmounting mounted directoriesin/var/lib/kubelet# 已卸载 kubelet 相关挂载目录[reset]Deleting contents of directories:[/etc/kubernetes/manifests /var/lib/kubelet /etc/kubernetes/pki]# 已删除静态 Pod 清单、kubelet 目录、pki 证书目录[reset]Deleting files:[/etc/kubernetes/admin.conf /etc/kubernetes/kubelet.conf /etc/kubernetes/bootstrap-kubelet.conf /etc/kubernetes/controller-manager.conf /etc/kubernetes/scheduler.conf]# 已删除各组件的 kubeconfig 文件The reset process does not clean CNI configuration. Todoso, you must remove /etc/cni/net.d# 提示reset 不会清理 CNI 网络配置需手动删除 /etc/cni/net.dThe reset process does not reset or clean up iptables rules or IPVS tables. If you wish to reset iptables, you mustdoso manually by using theiptablescommand.# 提示reset 不会重置 iptables/IPVS 规则需手动使用 iptables 命令重置If your cluster was setup to utilize IPVS, run ipvsadm--clear(or similar)to reset your systems IPVS tables.# 提示若集群使用了 IPVS需执行 ipvsadm --clear 清空 IPVS 表The reset process does not clean your kubeconfig files and you must remove them manually. Please, check the contents of the$HOME/.kube/config file.# 提示reset 不会清理 kubeconfig需手动删除 $HOME/.kube/config删除集群删除集群流程删除所有 node删除所有 master具体步骤删除所有node节点# 排空两台 worker 节点drain 驱逐节点上的 Pod--ignore-daemonsets 忽略 DaemonSet Pod--force 强制驱逐无控制器管理的裸 Podrootmaster30:~# kubectl drain worker31.laoma.cloud --ignore-daemonsets --forcerootmaster30:~# kubectl drain worker32.laoma.cloud --ignore-daemonsets --force# 从集群删除两台 worker 节点delete node 可一次跟多个节点名rootmaster30:~# kubectl delete node worker31.laoma.cloud worker32.laoma.cloud# 重置节点注意执行位置需分别登录各 worker 本机执行reset 还原 kubeadm 配置-f 强制重置不确认rootworker31:~# kubeadm reset -frootworker32:~# kubeadm reset -f删除master节点# 删除集群前获取集群配置get cm 读取 kube-system 命名空间的 kubeadm-config-n 指定命名空间-o yaml 以 YAML 输出 重定向保存到 kubeadm.ymlrootmaster30:~# kubectl get cm kubeadm-config -n kube-system -o yaml kubeadm.yml# 修改kubeadm.yml内容如下rootmaster30:~# vim kubeadm.yml# 先删除22-28行后删除1-3行效果如下apiServer: timeoutForControlPlane: 4m0s apiVersion: kubeadm.k8s.io/v1beta3 certificatesDir: /etc/kubernetes/pki clusterName: kubernetes controllerManager:{}dns:{}etcd: local: dataDir: /var/lib/etcd imageRepository: hub.laoma.cloud/kubernetes kind: ClusterConfiguration kubernetesVersion: v1.30.2 networking: dnsDomain: cluster.local podSubnet:10.224.0.0/16 serviceSubnet:10.96.0.0/12 scheduler:{}# 删除 master 节点对象delete node 将 master30 从集群移除rootmaster30:~# kubectl delete node master30.laoma.cloud# 在 master 本机重置 kubeadm 配置reset -f 强制还原、不确认rootmaster30:~# kubeadm reset -f# 删除 root 下的 kubeconfig 目录 .kuberm -fr 强制递归删除-r 递归、-f 不提示rootmaster30:~# rm -fr .kube/重建集群# 初始化集群使用配置文件方式kubeadm init 初始化控制面--config 指定 kubeadm.yml 配置文件rootmaster30:~# kubeadm init --config kubeadm.yml# 也可以使用之前的命令不用配置文件、直接带参数初始化--kubernetes-version 指定 K8s 版本--pod-network-cidr 指定 Pod 网段--image-repository 指定私有镜像仓库rootmaster30:~# kubeadm init --kubernetes-versionv1.30.2 --pod-network-cidr10.224.0.0/16 --image-repository hub.laoma.cloud/kubernetes# 配置凭据创建 .kube 目录mkdir -p 递归创建目录、父目录不存在时一并创建rootmaster30:~# mkdir -p $HOME/.kube# 复制集群管理员凭据到 .kube/configcp -i 覆盖时提示确认源文件为 admin.confrootmaster30:~# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config# 将 config 文件属主改为当前用户chown 修改属主$(id -u):$(id -g) 取当前用户 UID:GIDrootmaster30:~# sudo chown $(id -u):$(id -g) $HOME/.kube/config# 配置网络安装 Calico 网络插件kubectl apply -f 应用清单文件 calico.yamlrootmaster30:~# kubectl apply -f calico.yaml# 加入集群worker31 加入join 连接控制面 10.1.8.30:6443--token 指定引导令牌--discovery-token-ca-cert-hash 校验控制面 CA 证书哈希rootworker31:~# kubeadm join 10.1.8.30:6443 --token ky95b9.sjg0fn21pdi1m0xz --discovery-token-ca-cert-hash sha256xxxxxxx# worker32 加入集群命令同上rootworker32:~# kubeadm join 10.1.8.30:6443 --token ky95b9.sjg0fn21pdi1m0xz --discovery-token-ca-cert-hash sha256xxxxxxx
延伸阅读

更多相关文章

2026/10/22 17:44:07

2026年上海建筑安全员B证考试题库+答案+解析

以下20道题只是考试题库中的一部分。想系统刷完整个科目的,点击上方卡片↑,有分章节的完整版题库。2026年上海建筑安全员B本考试题库 (建议先做完,再看下面的答案)单选1. 对于超过一定规模的危险性较大的分部分项工程&…

2026/10/22 17:44:07

QML GridView 布局:网格排布与排列方向

目录基础网格演示代码排列方向演示代码三个方向属性工程下载GridView 和 ListView 的使用方式有点像,通过 model 提供数据、delegate 定义每一项的外观。区别在于 GridView 把所有项构建成二维网格,横向、竖向两个方向都随意排列,做应用宫格、…

2026/10/22 17:39:06

数字转换罗马数字

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

2026/10/22 18:44:27

SSM商城项目实战:Java初学者掌握Spring+MyBatis核心配置的跳板

简介:这是一套基于SSM(SpringSpringMVCMyBatis)框架与MySQL数据库开发的完整线上商城系统,含前台用户端与后台管理平台,面向Java Web初学者及中级开发者,适用于课程设计、毕业项目或SSM技术栈实战训练。资源…

2026/10/22 18:44:27

如何从Docker容器逆向还原docker run启动命令

1. 为什么“查看docker run启动参数”是每个运维和开发绕不开的硬需求你有没有遇到过这样的场景:线上一个容器突然开始吃CPU,日志里全是报错,但没人记得当初是用什么命令启动的;或者接手同事留下的遗留系统,只看到一堆…

2026/10/22 18:44:27

ISO/IEC 42001认证解读:AI治理管理体系与风险评估落地指南

从去年年底开始,陆续有客户拿着“ISO/IEC 42001认证”这个需求找过来,有科技公司、制造业、医疗信息化企业,甚至还有一些做内容推荐的互联网团队。大家的困惑高度一致:这份标准到底管什么?和已有的体系文件、算法备案、…

2026/10/22 18:44:27

118 个案例里,我挑出一个县和一所中学来看

📋 目录 📋 先说结论:大会公布的所有数字都是投入,没有一个是产出🧭 样本一:甘肃酒泉肃州区,一个西部县域的 23 件作品🎯 样本二:北京广渠门中学,一个已经跑…

2026/10/22 18:44:27

GALIP:融合大模型先验,让GAN在文本生成图像上反超扩散模型

这两年聊文本到图像生成,基本绕不开扩散模型。扩散模型把生成质量拉到了一个新高度,这是事实,但如果你真把它放到业务线里去用,就会发现推理慢、显存大、可控性不够直接这些工程问题依然非常棘手。而一个新思路正在被越来越多人关…

2026/10/22 18:39:26

Java+Spring Boot实现老年人健康管理应用:从数据模型到预警推送

简介:面向老年健康管理场景的Java应用设计源码,回应老龄化背景下慢性病与日常健康监护需求,适合Java Web开发者学习或快速搭建同类健康管理原型,也可作为课程设计或毕业设计的参考。资源包共36个文件,压缩后仅120KB&am…

2026/10/22 11:29:28

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/22 0:01:49

电商智能运营体系从0到1:架构设计、落地步骤与避坑指南

前两年我们团队接了一个电商平台的运营中台项目,目标很直白:把过去靠运营拍脑袋做的选品、定价、发券、推活动这些事,逐步用数据算法和自动化流程代替。项目名字内部就叫“电商智能运营体系”。最近有不少朋友问我当时是怎么设计的、踩过哪些…

2026/10/22 0:01:49

若依框架AI代码生成不稳定?用Agent Skill三层结构+五步法搞定

最近一段时间,我一直想把后台管理系统里那些机械重复的增删改查代码交给AI去写。框架用的是若依,按理说这类业务代码模式非常固定,应该是AI最擅长的事情。可真试下来却不是那么回事——你让AI生成一个用户管理模块,它给出的Contro…

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

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

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