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

[rancher] rancher部署和使用的一些思考

最近因为工作需要,学习调研rancher的使用
k8s作为主流微服务部署的基础,已经逐渐在工作中普及。但是k8s dashboard用于生产管理,还是有所欠缺:我们需要一个k8s之上的管理平台。经过调研,目前rancher已经迭代开发至v2.8版本,有很好的社区基础和公司技术支持,决定深入研究下

部署

初始创建一台ubuntu22.04 虚拟机,安装docker (版本20.10.x)。之前我提到过k8s 1.24之后不再兼容docker,但是rancher(v2.7)仅仅是利用docker启动rancher镜像,容器启动后在容器内部启动k3s支撑local集群。所以如果在宿主机器上使用docker ps命令,仅仅只能看到一个rancher容器在运行;进入容器运行crictl命令,可以看到k3s集群

添加新集群

https://github.com/kubernetes-sigs/cri-tools/releases
从这里可以下载最新的crictl工具,方便查看containerd等容器
编辑/etc/crictl.yaml文件可以修改默认socket路径

添加新集群的节点不需要额外安装docker,但是需要保证磁盘空间足够:这次测试安装,就是磁盘空间不够导致cluster agent pod无法启动,rancher界面内一直提示集群处于"waiting for cluster agent to connect"的reconciling状态
(查了两天原因。因为crictl只能看到已经启动的容器,pending的看不到。后来无意中看到运行rancher自带kubectl的方法: /var/lib/rancher/rke2/bin/kubectl --kubeconfig /etc/rancher/rke2/rke2.yaml,这才定位到root cause。虽然耽误了时间,但是也对rancher创建集群的逻辑有了更深一层的理解)

删除集群

我测试的rancher版本是2.7.7,从rancher UI界面删除集群和machine,后端部署的 k8s集群并不会受到影响。(据同事分享的信息,2.5.x版本,从界面删除集群,后端k8s集群也会被清空。我这里没有做测试:因为我个人喜欢用最新版本,以后大概率不会去用2.5)
如果需要清除后端部署k8s集群,需要手工登陆节点执行rancher提供的专门清理脚本:

1. 卸载agent服务脚本:

# rancher-system-agent-uninstall.sh
# which rancher-system-agent-uninstall.sh
/usr/local/bin/rancher-system-agent-uninstall.sh

直接执行就行。使用rancher的create功能创建集群时候,该脚本也会自动安装到/usr/local/bin路径下。所以直接在shell下运行即可

2. 卸载rke2集群

# which rke2-uninstall.sh
/usr/local/bin/rke2-uninstall.sh

同上,执行rke2-uninstall.sh即可删除rke2集群

3. 删除数据/配置文件

rm -rf /etc/ceph \/etc/cni \/etc/kubernetes \/etc/rancher \/opt/cni \/opt/rke \/run/secrets/kubernetes.io \/run/calico \/run/flannel \/var/lib/calico \/var/lib/etcd \/var/lib/cni \/var/lib/kubelet \/var/lib/rancher\/var/log/containers \/var/log/kube-audit \/var/log/pods \/var/run/calico

其实在第二步的脚本中,已经包括部分删除数据/配置的步骤,但是有些目录没删干净(例如/var/lib/rancher)

4. reboot 节点

经过以上四步,基本可以干净删除k8s(rke2)集群环境

5. CLI界面管理cluster

想直接在node上面利用cli管理新创建的集群,需要使用rke自带的kubectl和配置文件
例如:

/var/lib/rancher/rke2/bin/kubectl --kubeconfig /etc/rancher/rke2/rke2.yaml get nodes

为了不每次输入这么长的路径,我们可以按照k8s传统配置方法移动kubectl和rke2.yaml路径:

cp  /var/lib/rancher/rke2/bin/kubectl /usr/local/bin/
mkdir -p $HOME/.kube
cp /etc/rancher/rke2/rke2.yaml .kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

完成上述操作后,就可以方便的使用 kubectl get nodes 等命令了

root@k8s-master:~# kubectl get nodes
NAME         STATUS   ROLES                              AGE   VERSION
k8s-master   Ready    control-plane,etcd,master,worker   12d   v1.26.8+rke2r1
参考文档:
  1. https://ranchermanager.docs.rancher.com/how-to-guides/new-user-guides/manage-clusters/clean-cluster-nodes

相关文章:

[rancher] rancher部署和使用的一些思考

最近因为工作需要,学习调研rancher的使用 k8s作为主流微服务部署的基础,已经逐渐在工作中普及。但是k8s dashboard用于生产管理,还是有所欠缺:我们需要一个k8s之上的管理平台。经过调研,目前rancher已经迭代开发至v2.8…...

迅镭激光董事长颜章健荣膺“2023年如皋市科技强企人物”!

10月28日,2023如皋科技人才洽谈会开幕式在如皋隆重举行。江苏省科学技术厅副厅长、党组成员蒋洪,江苏省商务厅副厅长、党组成员孙津,中共南通市委副书记、政法委书记沈雷,中共如皋市市委书记何益军,中共如皋市委副书记…...

专业医学病例翻译公司推荐

我们知道,医学病例翻译在涉外看病的患者中具有广泛的应用,它可以帮助医生快速了解患者的病情,为治疗和药物处方提供关键信息。因此,对于出国看病的患者,医学病例翻译便成了不可或缺的重要工具。 翻译医学病例不仅要求译…...

英飞凌TC3xx-Overlay

目录 1.数据访问重定向 2.寄存器说明 3.Overlay功能配置 3.1 确认用于重定向的CPU 3.2 配置重定向Block大小 3.3 配置目标地址和重定向地址 4.结果验证 5.小结 今天说要开个专栏讲讲XCP标定,但在将标定之前,先把英飞凌专门为标定功能设计overlay…...

Win10系统有几种复制文件的命令,哪种最强大?

环境: Win10 专业版 问题描述: Win10系统有几种复制文件的命令,哪种最强大? 解决方案: 在 Windows 10 中,复制文件的命令有以下几种: 使用 xcopy 命令:xcopy 是一个功能强大的…...

力扣202.快乐数

原题链接:202.快乐数 要记住的就是,需要判断元素是否出现过,或者是否在集合里存在,就可以考虑用哈希法去做 因为是每一位都进行平方后相加得到新的数,所以需要单独写一个函数进行每位相加的运算得到最终的sum 不断重…...

iOS Xcode15 适配:Other Linker Flags:-ld_classic

0x00 适配是一条没有尽头的路 Xcode 14 毛问题都没有,Xcode 15 崩溃 看图说话 0x01 解决方案 Other Linker Flags 添加 -ld_classic 即可 0x02 我的小作品 欢迎体验我的作品之一:小挑战-XGame 拼图游戏,渐变色游戏,经典24点游…...

springboot苍穹外卖实战:六、redis(Spring Data Redis)

Spring Data Redis 简介 网址:https://spring.io/projects/spring-data-redis Spring Data Redis中提供了一个高度封装的类:RedisTemplate,对相关api进行了归类封装,将同一类型操作封装为operation接口,具体分类如下&#xff1…...

sqli 靶场 Level23-Level30 wp

level-23 (注释被过滤) 抓包,查看正常请求和响应。 略 尝试是否存在注入 id1’,id1’,成周期性变化 尝试 POC POC: id1andextractValue(1,concat(0x7e,user()))-- 结果:failed。怀疑–被过滤掉了,尝试…...

《完蛋!我被美女包围了》突然火了!世界首个开源贡献榜出炉丨 RTE 开发者日报 Vol.75

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE (Real Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…...

C++ Qt 学习(一):Qt 入门

Qt6 安装教程 0. 基础知识 0.1 qmake 和 cmake 对比 qmake:qt 独有的代码构建工具cmake:C 通用的代码构建工具,绝大部分 C 开源项目都使用 cmake 管理代码qt 项目,没有特殊要求,使用 qmake 即可 0.2 Qt 3 个窗口类的…...

高性能消息中间件 - Kafka3.x(三)

文章目录 高性能消息中间件 - Kafka3.x(三)Kafka Broker ⭐Kafka Broker概念Zookeeper(新版本可以不使用zk了)⭐Zookeeper的作用 Kafka的选举1:Broker选举Leader⭐Broker核心参数⭐案例:服役新节点和退役旧…...

【八】Linux成神之路

Linux成神之路 简介:最近梳理了一下自己linux系统的学习历程,感觉整个成长过程就很顺利,并没有走弯路,于是想着可以不可以把自己linux系统学习的路线记录下来,能够在大家成长的路上有一点帮助,就在这样的一…...

功能测试用例,需要详细到什么程度?

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…...

VScode远程连接错误:进程试图写入不存在的管道

使用VScode连接树莓派时,出现远程连接错误:进程试图写入不存在的管道 解决方案: (1)可以进入config所在文件夹,删除文件 (2)无法解决的化尝试下述方法 输入 Remotting-SSH:Settin…...

Python测试之Pytest详解

概要 当涉及到python的测试框架时,pytest是一个功能强大且广泛应用的第三方库。它提供简洁而灵活的方式来编写和执行测试用例,并具有广泛的应用场景。下面是pytest的介绍和详细使用说明: pytest是一个用于python单元测试的框架,它…...

uni-app微信小程序打开第三方地图

需求 小程序中有个按钮点击以后会调用手机中第三方地图进行导航。参数 位置信息 经度 与纬度。 实现方法 uni.openLocation({latitude: Number(地址纬度),longitude: Number(地址经度),name: 地址名称,address: 地址详情,success: function (res) {console.log(打开系统位置地…...

Android NDK开发详解之NDK 使用入门

Android NDK开发详解之NDK 使用入门 下载 NDK 和工具创建或导入原生项目 原生开发套件 (NDK) 是一套工具,使您能够在 Android 应用中使用 C 和 C 代码,并提供众多平台库,您可使用这些平台库管理原生 activity 和访问实体设备组件,…...

nmap指纹识别要点以及又快又准之方法

nmap指纹识别要点以及又快又准之方法 一. 前言:二. nmap识别实验:一. 实验一:IP配置:空间配置:扫描结果:详细输出二. 实验二:IP配置:空间配置:扫描结果:详细输出三. 实验三:IP配置:空间配置:扫描结果:详细输出四. 实验四:IP...

Rust编程基础之6大数据类型

1.Rust数据类型 在 Rust 中, 每一个值都属于某一个 数据类型(data type), 这告诉 Rust 它被指定为何种数据,以便明确数据处理方式。我们将看到两类数据类型子集:标量(scalar)和复合(compound&a…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...