Rancher 系列文章-Rancher 升级

news2024/11/26 18:28:29

概述

之前在 天翼云上用 4 台机器安装了一个 1 master(及 etcd) 3 node 的 K3S 集群,并在其上使用 Helm 安装了 Rancher 2.6.3 版本。

前几天发现 Rancher 官方推荐的最新版为:v2.6.4

所以决定先后对 Rancher 和 K3S 集群进行升级。

根据官方推荐,计划:

  1. 将 Rancher 从 v2.6.3 升级到 v2.6.4
  2. 将 K3S 集群从 v1.21.7+k3s1 升级到 v1.22.5+k3s2

本文为 Rancher 的升级记录。

相关信息

本次升级的 Rancher 的基本信息为:

  1. Rancher v2.6.3
  2. 使用 Helm 3, 在线安装
  3. 使用 cert-manager(v1.7.1) + let's encrypt 管理证书

升级步骤

一、备份运行 Rancher Server 的 Kubernetes 集群

使用 备份应用程序 来备份 Rancher。

如果在升级过程中出现问题,你将使用备份作为恢复点。

备份结果如下图:

Rancher 界面备份结果

对象存储中的备份对象

二、更新 Helm Chart repository

  1. 更新本地 helm 缓存。

    helm repo update
    
  2. 获取用来安装 Rancher 的存储库名称。

    关于存储库及其区别,请参见 Helm Chart Repositories。

    • Latest:推荐用于尝试最新功能
    • Stable:推荐用于生产环境 (📝 我用的是这个)
    • Alpha:即将发布的版本的实验性预览

    请将命令中的 <CHART_REPO>,替换为 latest ,stable 或 alpha

    $ helm repo list
    
    NAME                    URL
    bitnami                 https://charts.bitnami.com/bitnami
    grafana                 https://grafana.github.io/helm-charts
    aliyuncs                https://apphub.aliyuncs.com
    rancher-stable          http://rancher-mirror.oss-cn-beijing.aliyuncs.com/server-charts/stable
    prometheus-community    https://prometheus-community.github.io/helm-charts
    
  3. 从 Helm chart 库中获取最新的 chart 来安装 Rancher。

    该命令将提取最新的 chart,并将其作为 .tgz 文件保存在当前目录中。可以通过添加 --version= 标记来获取要升级到特定版本的 chart。如下:

    helm fetch rancher-stable/rancher --version=v2.6.4
    

三、升级 Rancher

使用 Helm 升级 Rancher 的普通(互联网连接)安装。

从当前安装的 Rancher Helm chart 中获取用 --set 传递的值。

$ helm get values rancher -n cattle-system
USER-SUPPLIED VALUES:
hostname: rancher.ewhisper.cn
ingress:
  tls:
    source: letsEncrypt
replicas: 1
systemDefaultRegistry: registry.cn-hangzhou.aliyuncs.com

🐾 Notes:

因为我的集群是测试或 Demo 用途,所以 replicas 设置为 1

将上一步中的所有值用--set key=value 追加到命令中。

helm upgrade rancher rancher-stable/rancher \
  --namespace cattle-system \
  --set hostname=rancher.ewhisper.cn \
  --set ingress.tls.source=letsEncrypt \
  --set replicas=1 \
  --set systemDefaultRegistry=registry.cn-hangzhou.aliyuncs.com \
  --version=2.6.4

四、验证升级是否成功

登录 Rancher,确认升级成功。

Rancher 升级 v2.6.4 成功

🎉🎉🎉

但是,验证过程中也发现几个问题,下面一一描述及解决。

升级后出现的问题

  • helm 升级失败,报错 rendered manifests contain a resource that already exists
  • 受管集群 home-k3s 无法连接。

Helm 升级 Rancher 失败

问题

报错如下:

Error: UPGRADE FAILED: rendered manifests contain a resource that already exists. 
Unable to continue with update: Secret "bootstrap-secret" in namespace "cattle-system" exists and cannot be imported into the current release: invalid ownership metadata; 
label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; 
annotation validation error: missing key "meta.helm.sh/release-name": must be set to "rancher"; 
annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "cattle-system"

解决办法

GitHub 搜索相关 Issue, 发现是 v2.6.4 的 Bug, Workaround 措施:

首先删除密钥,然后再次运行 helm 安装:

kubectl delete secret -n cattle-system bootstrap-secret
helm upgrade rancher rancher-stable/rancher \
  --namespace cattle-system \
  --set hostname=rancher.ewhisper.cn \
  --set ingress.tls.source=letsEncrypt \
  --set replicas=1 \
  --set systemDefaultRegistry=registry.cn-hangzhou.aliyuncs.com \
  --version=2.6.4

问题解决。

受管集群 home-k3s 无法连接

问题

升级后发现:受管集群 home-k3s 无法连接,如下图:

受管集群无法连接

登录受管集群,查看 cattle-cluster-agent 的日志,发现报错提示 镜像的格式不对,拉取的为 x86_64 格式的镜像。

这是因为前面 Helm 安装的时候增加了 systemDefaultRegistry=registry.cn-hangzhou.aliyuncs.com 这个参数,而 registry.cn-hangzhou.aliyuncs.com 镜像库只有 x86_64 格式的镜像,没有 arm64 格式的镜像,而我的 home-k3s 是安装在 树莓派 4 上面的。

解决办法

移除 Helm 的systemDefaultRegistry=registry.cn-hangzhou.aliyuncs.com 配置,执行 upgrade, 如下:

helm upgrade rancher rancher-stable/rancher \
  --namespace cattle-system \
  --set hostname=rancher.ewhisper.cn \
  --set ingress.tls.source=letsEncrypt \
  --set replicas=1

执行成功后,发现 Helm 的配置已变更,但是 Rancher 的 systemDefaultRegistry 却仍是 registry.cn-hangzhou.aliyuncs.com.

这里发现 Rancher 界面显示如下 - set by env value:

Rancher 界面 systemDefaultRegistry 显示

最终发现是配置在这里:

apiVersion: management.cattle.io/v3
kind: Setting
metadata:
  name: system-default-registry
customized: false
default: ''
source: ''
value: 'registry.cn-hangzhou.aliyuncs.com'

删除这个 yaml 或将 value 改为:value: '', 并重启 Rancher, 重启后生效,发现 'registry.cn-hangzhou.aliyuncs.com' 以被移除。

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

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

相关文章

迁移到强化学习的 6 个理由

胡巴雷拉 从 https://en.wikipedia.org/wiki/Reinforcement_learning 一、说明 强化学习&#xff08;RL&#xff09;是机器学习的一个领域&#xff0c;涉及智能体应该如何在环境中采取行动&#xff0c;以最大化累积奖励的概念。强化学习是三种基本的机器学习范式之一&#xff…

RHCSA/RHCE考试模拟环境搭建

RHCSA/RHCE考试模拟环境搭建 1. 使用VMware workstation部署2. 使用U盘通过物理服务器部署1. 使用VMware workstation部署 RHCSA环境内存至少16G,RHCE环境内存至少12G,处理器配置8核   网络适配器选择NAT方式   取消显示器的“加速3D图形”:   另外添加一块硬…

Time Series Classification

时间序列分类 我第一次遇到时间序列分类的概念时&#xff0c;我最初的想法是&#xff1a;我们如何对时间序列进行分类&#xff1f;时间序列分类的数据是什么样子的&#xff1f; 可以想象&#xff0c;时间序列分类数据不同于常规分类问题&#xff0c;因为属性具有有序的序列。…

【业务功能篇47】 idea自动生成代码插件EasyCode

业务越来越多需求的情况下&#xff0c;对应的表也是逐渐增多&#xff0c;许多的文件都是一些重复操作&#xff0c;比如表的实体类&#xff0c;mapper接口类&#xff0c;xml映射文件&#xff0c;业务层接口&#xff0c;接口实现类等。亟需一个自动化生成固定代码文件的工具&…

【24】SCI易中期刊推荐——计算机人工智能(中科院4区)

💖💖>>>加勒比海带,QQ2479200884<<<💖💖 🍀🍀>>>【YOLO魔法搭配&论文投稿咨询】<<<🍀🍀 ✨✨>>>学习交流 | 温澜潮生 | 合作共赢 | 共同进步<<<✨✨ 📚📚>>>人工智能 | 计算机视觉…

【Java从0到1学习】02 Java 开发环境配置

1. 安装 1、方式一&#xff1a;进入官网https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html下载JDK 方式二&#xff1a;博主提供的百度网盘版本下载&#xff1a;https://pan.baidu.com/s/1liNHej2hGXJU_L8yQNRZmQ?pwd9w3f 2、下载后双击即可安装…

4、VScode、WAMP、Xdebug调试

1、查看Xdebug的版本 Xdebug是随WAMP一起安装的&#xff0c;版本号可以通过PHP扩展菜单下查看&#xff0c;为3.1.6 2、配置系统环境变量 将PHP的安装目录&#xff0c;添加到系统的环境变量中&#xff0c;配置完成后&#xff0c;通过命令行 输入命令 PHP -V&#xff0c;查看是…

33. bio和nio

文章目录 一、bio网络模型1.1 bio网络模型示意图1.2 bio网络模型缺点 二、NIO网络模型2.1 nio网络模型示意图2.2 nio网络模型的改进 三、NIO核心- Channel&#xff08;通道&#xff09;3.1 Channel 简介3.2 Channel 实现类3.3 bio的socket 和 nio的channel代码实现 四、NIO核心…

“小小消防员 立志勇向前”未成年人就业创业意识技能指导培训活动

为培养未成年人沉着冷静处理突发事件的应变能力&#xff0c;提高未成年人的个人技能和社会实践能力&#xff0c;2023年7月13日&#xff0c;在吴忠市利通区民政局的支持指导下&#xff0c;吴忠市利通区新时代文明传播公益服务中心组织开展了“小小消防员 立志勇向前”—未成年人…

求根节点到叶节点数字之和

给你一个二叉树的根节点 root &#xff0c;树中每个节点都存放有一个 0 到 9 之间的数字。 每条从根节点到叶节点的路径都代表一个数字&#xff1a; 例如&#xff0c;从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。 计算从根节点到叶节点生成的 所有数字之和 。…

ubuntu22.0.4 tar命令不管用

问题&#xff1a; 解决方法&#xff1a;sudo tar sudo tar -zxvf flex-2.5.39.tar.gz不知道为什么需要sudo 去执行才可以正常工作。

关于电脑显示器屏幕看不出灰色,灰色和白色几乎一样无法区分,色彩调整方法

问题&#xff1a; 电脑显示器屏幕看不出灰色&#xff0c;灰色和白色几乎一样无法区分。白色和灰色有色差。 解决方法&#xff1a; 打开“控制面板” ->“色彩管理” ->“高级” ->“校正显示器” 在下一步调节中调成中间这一个实例的样子就可以了 进行微调&#x…

Java - Iterator迭代器

Iterator(迭代器) Iterator介绍 1、Iterator对象称为迭代器&#xff0c;主要用于遍历 Collection 集合中的元素 2、所有实现了Collection 接口的集合类都有一个iterator()方法&#xff0c;用以返回一个实现了Iterator接口的对象&#xff0c;即可以返回一个迭代器 3、Iterat…

我在VScode学Java类与对象(Java显式参数和隐式参数、静态方法+main方法、Java访问修饰符、static关键字、Java的包、对象数组)第三辑

我的个人博客主页&#xff1a;如果’真能转义1️⃣说1️⃣的博客主页 关于Java基本语法学习---->可以参考我的这篇博客&#xff1a;《我在VScode学Java》 续《我在VScode学Java&#xff08;Java的类与对象&#xff09;》 方法会操作对象并访问他们的实例字段。 伍._. 显式参…

springboot整合ehcache和redis实现多级缓存实战案例

一、概述 在实际的工作中&#xff0c;我们通常会使用多级缓存机制&#xff0c;将本地缓存和分布式缓存结合起来&#xff0c;从而提高系统性能和响应速度。本文通过springboot整合ehcache和redis实现多级缓存案例实战&#xff0c;从源码角度分析下多级缓存实现原理。 二、实战案…

STM32F407-- DMA使用

目录 1. DMA结构体 STM32F103&#xff1a; STM32F407&#xff1a; 2. F4系列实现存储器到存储器数据传输 1&#xff09;结构体配置&初始化 2&#xff09;主函数 补充知识点&#xff1a;关于变量存储的位置&#xff0c;关于内部存储器一般存储什么内容 3. F4系列实现…

Word 常用操作总结

文章目录 【公式篇】编号右对齐自动编号多行公式对齐编号右靠下编号右居中 公式引用更新编号 【公式篇】 简述&#xff1a;通过“#换行”的方式使编号右对齐&#xff0c;通过插入题注的方式使其自动编号&#xff0c;通过交叉引用的方式引用公式编号。 编号右对齐自动编号 在公…

【chrome】谷歌浏览器地址栏右侧“安装”按钮实现

这玩意学名叫PWA&#xff1a; 全称&#xff1a;Progressive Web App&#xff0c;是提升 Web App 的体验的一种新方法&#xff0c;能给用户原生应用的体验。 一、PWA安装条件&#xff1a; 在 Chrome 中&#xff0c;渐进式 Web 应用程序必须满足以下条件才能触发 beforeinstallpr…

session 生命周期和经典案例-防止非法进入管理页面

文章目录 session 生命周期和Session 经典案例-防止非法进入管理页面session 生命周期Session 生命周期-说明代码演示说明 Session 的生命周期创建CreateSession2创建ReadSession2 解读Session 的生命周期代码示例创建DeleteSession Session 经典案例-防止非法进入管理页面需求…

对接金蝶云星空,奥威软件SaaS BI能做的不止这一点

金蝶云星空提供了包括供应链管理、生产管理、销售与客户关系管理、人力资源管理、财务管理等功能&#xff0c;是一款基于云计算、大数据、人工智能等技术的商业智能软件服务。以云端数据可视化分析为主业的SaaS BI无一例外地提供了对接金蝶云星空数据源的路径&#xff0c;但接下…