rke管理k8s节点的新增与删除

news2024/9/28 1:21:52

1 删除worker节点

# 查看节点名
kubectl get nodes
# 标记节点不可调度
kubectl cordon worker8 
# DaemonSet 确保集群中的所有(或某些)节点上都运行了一个 Pod 的副本
# 排空节点上的pod,确保该节点上的所有Pod都调度到其他节点
kubectl drain worker8 --ignore-daemonsets
# 删除节点
kubectl delete node worker8 

实际命令如下

[root@master1 ~]# kubectl get nodes
NAME      STATUS   ROLES          AGE   VERSION
etcd1     Ready    etcd           25d   v1.19.3
etcd2     Ready    etcd           25d   v1.19.3
etcd3     Ready    etcd           25d   v1.19.3
master1   Ready    controlplane   25d   v1.19.3
master2   Ready    controlplane   25d   v1.19.3
master3   Ready    controlplane   25d   v1.19.3
worker1   Ready    worker         25d   v1.19.3
worker2   Ready    worker         25d   v1.19.3
worker3   Ready    worker         25d   v1.19.3
worker4   Ready    worker         25d   v1.19.3
worker5   Ready    worker         25d   v1.19.3
worker6   Ready    worker         25d   v1.19.3
worker7   Ready    worker         25d   v1.19.3
worker8   Ready    worker         25d   v1.19.3
worker9   Ready    worker         25d   v1.19.3
[root@master1 ~]# kubectl cordon worker8 
node/worker8 cordoned
[root@master1 ~]# kubectl drain worker8 --ignore-daemonsets
node/worker8 already cordoned
WARNING: ignoring DaemonSet-managed Pods: kube-system/canal-cgfh7
evicting pod middleware/nacos-0
pod/nacos-0 evicted
node/worker8 evicted
[root@master1 ~]# kubectl delete node worker8 
node "worker8" deleted
[root@master1 ~]# kubectl get nodes
NAME      STATUS   ROLES          AGE   VERSION
etcd1     Ready    etcd           25d   v1.19.3
etcd2     Ready    etcd           25d   v1.19.3
etcd3     Ready    etcd           25d   v1.19.3
master1   Ready    controlplane   25d   v1.19.3
master2   Ready    controlplane   25d   v1.19.3
master3   Ready    controlplane   25d   v1.19.3
worker1   Ready    worker         25d   v1.19.3
worker2   Ready    worker         25d   v1.19.3
worker3   Ready    worker         25d   v1.19.3
worker4   Ready    worker         25d   v1.19.3
worker5   Ready    worker         25d   v1.19.3
worker6   Ready    worker         25d   v1.19.3
worker7   Ready    worker         25d   v1.19.3
worker9   Ready    worker         25d   v1.19.3

如果要撤掉删掉,还需要删除cluster.yml中对应节点配置。

# 
su - rancher
# 删除节点定义
vi cluster.yml
# 重新部署集群
rke up --update-only --config cluster.yml

修改cluster.yml之后,再执行docker ps,可以看到rancher相关的才没有了。

2 新增worker节点

su - rancher
# 更新节点配置
rke up --update-only --config cluster.yml
# 修改日志级别的写法,实际没什么用
RKE_LOG_LEVEL=DEBUG rke up --update-only --config cluster.yml

如果是原来的worker8节点恢复,需要在worker8节点重启docker,执行service docker restart,再回到master节点rke up --update-only --config cluster.yml执行才可以。

2.1 worker8:10250无法访问的问题

再master节点执行,可以检测到worker8

[rancher@master1 ~]$ ssh -i ~/.ssh/id_rsa rancher@worker8
Last login: Sat Aug  3 09:09:06 2024

出现下面的问题,原因是worker8节点移除后,立马执行rke up --update-only --config cluster.yml,是不行的,需要在worker8上执行service docker restart

FATA[0019] [[network] Host [master3] is not able to connect to the following ports: [worker8:10250]. Please check network policies and firewall rules] 
# 手工测试连接,是没有问题的。在master1上执行
su - rancher
[rancher@master1 ~]$ ssh -i ~/.ssh/id_rsa rancher@worker8
Last login: Sun Aug  4 07:40:49 2024 from master1

# 检查防火墙状态,在worker8上执行
[root@worker8 ~]# firewall-cmd --state
not running

# 检查端口监听情况
[root@worker8 ~]# netstat -tuln | grep :10250
tcp6       0      0 :::10250                :::*                    LISTEN 

# 在有效的woker9节点中可以看到
[root@worker9 ~]# lsof -i:10250
COMMAND   PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
kubelet 25464 root   27u  IPv6 15603796      0t0  TCP *:10250 (LISTEN)
kubelet 25464 root   31u  IPv6 55613041      0t0  TCP worker9:10250->worker2:58563 (ESTABLISHED)

# 检测有问题的worker8,应该是下面的服务启动有问题
# 为什么会多出这样的容器,是因为worker8没有重启docker,就重新安装集群节点了,这个是由问题的
# docker rm -f 88217223a4d6,将容器删掉
# service docker restart
[root@worker8 kubernetes]# docker ps
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                             NAMES
88217223a4d6        rancher/rke-tools:v0.1.65   "/docker-entrypoint.…"   19 seconds ago      Up 18 seconds       80/tcp, 0.0.0.0:10250->1337/tcp   rke-worker-port-listener

2.2 worker1" not found

磁盘被清理掉,恢复worker1、worker4、worker7节点,提示下面的错误,

ERRO[0184] Host worker1 failed to report Ready status with error: [worker] Error getting node worker1:  "worker1" not found 
INFO[0184] [worker] Now checking status of node worker4, try #1 
ERRO[0209] Host worker4 failed to report Ready status with error: [worker] Error getting node worker4:  "worker4" not found 
INFO[0209] [worker] Now checking status of node worker7, try #1 
ERRO[0234] Host worker7 failed to report Ready status with error: [worker] Error getting node worker7:  "worker7" not found 
# 检查网络策略,没有啥问题
[root@master1 ~]# kubectl get networkpolicies -A
No resources found

换个策略,就是改名字

hostnamectl set-hostname worker01
hostnamectl set-hostname worker04
hostnamectl set-hostname worker07

vi /etc/hosts

然后再执行rke up --update-only --config cluster.yml

INFO[0015] [reconcile] Check etcd hosts to be added     
INFO[0015] [hosts] Cordoning host [worker1]             
WARN[0040] [hosts] Can't find node by name [worker1]    
INFO[0040] [dialer] Setup tunnel for host [worker1]     
INFO[0043] [dialer] Setup tunnel for host [worker1]     
INFO[0046] [dialer] Setup tunnel for host [worker1]     
WARN[0049] [reconcile] Couldn't clean up worker node [worker1]: Not able to reach the host: Can't retrieve Docker Info: error during connect: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/info": Failed to dial ssh using address [worker1:22]: dial tcp: lookup worker1 on 223.5.5.5:53: no such host 
INFO[0049] [hosts] Cordoning host [worker4]             
WARN[0074] [hosts] Can't find node by name [worker4]    
INFO[0074] [dialer] Setup tunnel for host [worker4]     
INFO[0078] [dialer] Setup tunnel for host [worker4]     
INFO[0081] [dialer] Setup tunnel for host [worker4]     
WARN[0084] [reconcile] Couldn't clean up worker node [worker4]: Not able to reach the host: Can't retrieve Docker Info: error during connect: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/info": Failed to dial ssh using address [worker4:22]: dial tcp: lookup worker4 on 223.5.5.5:53: no such host 
INFO[0084] [hosts] Cordoning host [worker7]             
WARN[0109] [hosts] Can't find node by name [worker7]    
INFO[0109] [dialer] Setup tunnel for host [worker7]     
INFO[0112] [dialer] Setup tunnel for host [worker7]     
INFO[0116] [dialer] Setup tunnel for host [worker7]     
WARN[0119] [reconcile] Couldn't clean up worker node [worker7]: Not able to reach the host: Can't retrieve Docker Info: error during connect: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/info": Failed to dial ssh using address [worker7:22]: dial tcp: lookup worker7 on 223.5.5.5:53: no such host 

但是worker01,worker04、worker07节点成功安装了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1980917.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Android】通知的使用

使用通知 通知(notification)是Android系统中比较有特色的一个功能,当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现。发出一条通知后,手机最上方的状态栏中…

三十种未授权访问漏洞复现 合集( 五 )

未授权访问漏洞介绍 未授权访问可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷,导致其他用户可以直接访问,从而引发重要权限可被操作、数据库、网站目录等敏感信息泄露。---->目录遍历 目前主要存在未授权访问漏洞的有:NFS服务&a…

Modern C++ 函数发展:从函数指针到匿名函数

函数作为最小的代码单元&#xff0c;在C这个大杂烩中&#xff0c;可以跟很多特性结合&#xff0c;较为复杂&#xff0c;本文讲解C中函数是如何一步步演变的。 函数 跟C中类似&#xff0c;将一部分代码封装起来&#xff0c;方便进行复用。 #include <iostream>int add(i…

【Nuxt】404 页面 和 嵌套路由

404 页面 只需要一个动态参数组件的页面即可&#xff08;slug 也可以是其他字符串&#xff09;&#xff0c;比如&#xff1a; 此时包含三个页面组件&#xff1a;/about, /about/about-fdsfsdf, /about/fdsf/fdsfs/fsdfsfsdf/…(404) 。 具体 404 路由页面可以写成某个路径下的…

【正点原子i.MX93开发板试用连载体验】中文提示词的训练

本文首发于电子发烧友论坛&#xff1a;【正点原子i.MX93开发板试用连载体验】基于深度学习的语音本地控制 - 正点原子学习小组 - 电子技术论坛 - 广受欢迎的专业电子论坛! 好久没有更新了&#xff0c;今天再来更新一下。 我们用前面提到的录音工具录制了自己的中文语音&#…

销量激增难解奇瑞焦虑:新能源短板与加班文化引争议

尽管今年上半年奇瑞汽车以惊人的48.4%同比增长率&#xff0c;力压比亚迪、吉利等竞争对手&#xff0c;成为国内汽车销量增速最快的企业&#xff0c;但这光鲜的增长数字背后&#xff0c;却隐藏着难以忽视的焦虑与困境。 奇瑞汽车的销量飞跃&#xff0c;主要得益于燃油车市场的强…

短信平台营销:解锁市场潜力的金钥匙

在瞬息万变的营销领域&#xff0c;短信平台以其直接、高效、覆盖面广的特性&#xff0c;成为众多企业争相探索的蓝海。面对中国近9亿的手机用户群体&#xff0c;这一庞大的市场潜力无疑为企业开启了无限商机的大门。 一、塑造品牌&#xff0c;提升知名度 短信平台营销是…

ProvenCore经过形式化验证的TEE OS,最高级别的安全认证CC EAL 7

这是一个闭源的TEE OS&#xff0c;但其ATF组件已提交到upstream。 实现安全功能需要硬件的高级抽象&#xff0c;通常由操作系统 (OS) 提供。由于安全功能的正确性取决于这些高级抽象的正确性&#xff0c;因此实现这些功能的操作系统应该没有可利用的漏洞。 ProvenRun 开发了 …

JavaEE---Spring MVC(3)

11.获取session 法1> 传统方式 初始状态下session为空,那么我们就需要手动设置session 2>不传统方式 但是!!!我们发现报错了! 解决方式: 设置session之后可以发现代码的session就被查到了 12.获取header 1>传统方式 这里我们规定只返回浏览器的信息 2>不…

【CodinGame】趣味算法(教学用) CLASH OF CODE -20240804

文章目录 正文写在最后END 正文 import math import sys# Auto-generated code below aims at helping you parse # the standard input according to the problem statement.n int(input()) j 1 h 0for i in range(1, n 1):j * ih iprint(j) print(h)import sys import m…

推荐一款界面优雅、功能强大的 .NET + Vue 权限管理系统

目录 前言 项目简介 项目特点 项目预览 项目演示 1、系统登录 2、系统首页 3、系统页面 4、插件示例 5、移动端 项目地址 总结 前言 今天推荐一款用 .NET 和 Vue3 实现的开源权限管理系统。它的界面清爽干净&#xff0c;功能强大&#xff0c;还具备灵活的角色权限分配…

人工智能在病理组学领域的最新研究进展|顶刊速递·24-08-05

小罗碎碎念 本期推文主题&#xff1a;人工智能在病理组学领域的最新进展 今天的推文主要涉及三个癌种——结直肠癌、肾乳头状细胞癌、上皮性卵巢癌。既有淋巴结转移的风险预测模型&#xff0c;也有结合了测序数据的多模态病理AI模型。 重点关注一下第六篇文献&#xff0c;由西…

本地化AI语音聊天voicechat2;改进版的Whisper模型,速度快50%;多代理创建儿童图画书

✨ 1: voicechat2 voicechat2是一款使用WebSockets进行快速、本地化AI语音聊天的软件。 Voicechat2 是一个快速、完全本地化的AI语音聊天系统&#xff0c;采用WebSockets技术。它运行在高性能硬件上&#xff0c;例如7900级的AMD RDNA3显卡或4090显卡&#xff0c;可以实现低至…

最全面的Python重点知识汇总,建议收藏!

Py2 VS Py3 print成为了函数&#xff0c;python2是关键字 不再有unicode对象&#xff0c;默认str就是unicode python3除号返回浮点数 没有了long类型 xrange不存在&#xff0c;range替代了xrange 可以使用中文定义函数名变量名 高级解包 和*解包 限定关键字参数 *后的变…

【区块链+医疗健康】国家儿童医学中心互联网 + 肾脏专科联盟服务平台 | FISCO BCOS应用案例

医疗资源结构的失衡在儿科领域尤为突出&#xff0c;供需矛盾突出。由于肾脏病等疑难病的特殊性&#xff0c;加之儿童疾病诊断的 复杂性&#xff0c;其诊治过程可谓“难上加难”。一些基层儿童医院由于缺乏专业的医疗团队、特殊的辅助检查手段以及 基因测序等前沿技术的支撑&…

代码随想录算法训练营第二十四天| 455.分发饼干, 376. 摆动序列 , 53. 最大子序和

今天是贪心算法学习的第一天&#xff0c;主要的学习内容有&#xff1a;贪心算法的理论基础&#xff0c;以及如何通过局部最优解推导全局最优解。 对于贪心的理论基础&#xff0c;贪心算法并没有固定的模板和套路&#xff0c;对于贪心算法的题目其实就是一种模拟题&#xff0c;…

从常春藤精英到阶下囚:加密货币行业丑闻频发,责任在「名校情节」?

撰文&#xff1a;Muyao Shen&#xff0c;彭博社 编译&#xff1a;Yangz&#xff0c;Techub News 似乎每当加密货币行业出现丑闻时&#xff0c;涉案者大都有着常春藤联盟大学或其他名校学位。本文简单整理了加密货币行业的「脏衣篓」&#xff0c;翻出了好多名校 T 恤。 就在本周…

UE5 UC++流式请求 || Varest流式调用Coze(但一次性回复,不太推荐)

文章仅供参考。C调用的是公司后台的接口&#xff0c;博主未尝试用C调用Coze的接口&#xff0c;需要补充更多的代码。 ———— C #include "HttpModule.h" #include "HttpManager.h" #include "Http.h"DECLARE_DYNAMIC_MULTICAST_DELEGATE_O…

星座运势网源码/星座屋接口/星座配对网站PHP程序带采集

星座运势网源码/星座屋接口/星座配对网站PHP程序带采集 演示站&#xff1a; https://xz.wengu8.com/ 程序说明&#xff1a; 1、前端模板PC手机端自适应。 2、每日运势/当月/当年星座运势调用星座屋API接口&#xff0c;每天只采集一次接口&#xff0c;后保存到本地调用本地…

ThreeJs控制模型骨骼实现数字人

之前章节有讲过ThreeJs加载pmd模型和vmd动作文件&#xff0c;实现动画人物根据vmd中的动作跳舞&#xff0c;不过缺点是只能按照文件中指定动作跳舞&#xff0c;如果要让一个模型做出多种动作的话&#xff0c;就需要做很多个动作文件&#xff0c;如果动作文件很多&#xff0c;加…