- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
之前在 天翼云上用 4 台机器安装了一个 1 master(及 etcd) 3 node 的 K3S 集群,并在其上使用 Helm 安装了 Rancher 2.6.3 版本.
前几天发现 Rancher 官方推荐的最新版为: v2.6.4 。
所以决定先后对 Rancher 和 K3S 集群进行升级.
根据官方推荐,计划:
本文为 Rancher 的升级记录.
本次升级的 Rancher 的基本信息为:
使用 备份应用程序 来备份 Rancher.
如果在升级过程中出现问题,你将使用备份作为恢复点.
备份结果如下图:
更新本地 helm 缓存.
helm repo update
获取用来安装 Rancher 的存储库名称.
关于存储库及其区别,请参见 Helm Chart Repositories .
请将命令中的 <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
从 Helm chart 库中获取最新的 chart 来安装 Rancher.
该命令将提取最新的 chart,并将其作为 .tgz 文件保存在当前目录中。可以通过添加 --version= 标记来获取要升级到特定版本的 chart。如下:
helm fetch rancher-stable/rancher --version=v2.6.4
使用 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,确认升级成功.
🎉🎉🎉 。
但是,验证过程中也发现几个问题,下面一一描述及解决.
rendered manifests contain a resource that already exists
home-k3s
无法连接。 报错如下:
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
最终发现是配置在这里:
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' 以被移除.
问题解决.
三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写. 。
最后此篇关于Rancher系列文章-Rancher升级的文章就讲到这里了,如果你想了解更多关于Rancher系列文章-Rancher升级的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我几乎不敢在这里问这个问题,因为它似乎应该很容易通过谷歌或 ravendb.net 获得。但是,我一直很难找到将我的 RavenDB 升级到新版本的正确方法。我目前正在运行 573 版并希望升级到 6
这周我需要升级当前版本的 DNN。我目前使用的是 2.1.1。我不想每件事都做两次,所以,我有几个问题。 是否有升级工具或某些脚本可以帮助我进行升级。 我最好安装 4.9 还是 5.0。这是生产。 如
将 Sugarcrm 从 6.2 升级到 6.3 版本时遇到问题。当我升级本地 Sugarcrm 安装时,它可以工作,但是当我开始升级我的 Sugarcrm 6.2 站点并上传升级包时,它不会上传。
有没有办法绕过 Meteor 的自动更新功能?我坚持 Downloading meteor-tool@1.3.0_3... \ 当我尝试运行现有项目,或创建一个新项目或只是运行“
我已将应用内集成到我的 Andorid 应用程序中,用于单个产品 productone。 为此,我在我的 Google Play 控制台中创建了不同的产品 ID,如下所示: 1。 productone
我在将 TeamCity 版本 2017.1.1 升级到 2017.1.2 时遇到问题。这个问题涉及 TeamCity 和 PostgreSQL 的工作。我的工作: 停止 teamcity 进程 /e
我寻找了这个问题的具体答案,但找不到——即使是在 WAMPSERVER 网站上也是如此。我确定我忽略了它。 我有 Wampserver 2.0、MySQL 5.0.51b、PHP 5.2.6 和 Ap
我使用 Ubuntu 软件中心默认的 Eclipse 3.7。 我想将 Eclipse 升级到 kepler 版本,所以我添加了 repository 我收到以下错误消息: Cannot comple
你好 我只想安装 mercurial,但对于它需要 python 2.6 的所有版本,我尝试使用 .rpm 文件,但我唯一得到的是很多充满错误的行,它告诉我:需要安装在 2.6 之前和 2.5 之后的
我完全知道 Gradle 网站上有一些页面说明了如何升级,但仅限于 4.x 及更高版本。 我正在尝试关注 tutorial制作一个简单的“我的第一个”Minecraft 模组。在其中,您被告知安装 f
我们想升级 Kerberos(服务器和客户端) 当前:1.6.3-133.27.1 目标:1.6.3-133.49.97.1 问题是如果我们用包管理器升级它,下面会发生什么? KDC 数据库 所有主要
背景 原计划 2019 年发布的 Vue3,又经过一年的再次打磨,终于于去年 9 月正式发布。随后,不少 UI 组件库都积极参与适配,去年 12 月,Element-plus(
我有一个版本为 2.3.4 的 grails 项目,我需要尽可能升级到最新版本。查看文档我意识到从 2.x 到 3.x 有巨大的变化。 问题是:从 2 到 3、从 3 到 4、从 4 到 5 逐步升级
我正在将 API 项目从 .net5 升级到 .net6 它以前工作,现在它崩溃 内部异常消息“抛出了‘Unity.Exceptions.InvalidRegistrationException’类型
我将我的项目从 expo 44 升级到 expo 45,现在我有无数这样的错误: The module 'MaterialIcons' can't be used as JSX component.
我已经升级了掌 Helm 模板(手动) 以前的片段depoloyment.yaml : apiVersion: apps/v1beta2 kind: Deployment metadata: na
我正在尝试将我的 Scala Play Framework 应用程序升级到 2.8,这涉及将 SBT 升级到 1.x。 在我的 build.propeties 我有 sbt.version=1.3.5
我想在我的 Windows 服务器上安装 PHPUnit 3.7。我遵循了各种说明 here并以 PHPUnit 3.4.1 结束。当我尝试使用以下方法再次安装它时: pear update chan
Microsoft.Net 4.5 即将推出,我想在 MS 发布最终版本时升级我的 clickonce 应用程序。 我的问题是:已经安装了 clickonce 应用程序(使用 .net 4.0)的用户
为了将 Angular 8 更新到 9,我正在按照官方文档升级。 这建议首先更新到最新版本的 angular 8,例如: ng update @angular/core@8 @angular/cli@
我是一名优秀的程序员,十分优秀!