4.5. 升级 Fuse 在线
Fuse Online 在启动时发布全新的应用程序镜像(包括补丁和安全修复程序)。通过红帽的勘误更新频道通知您这些更新。然后您可以升级 Fuse Online 镜像。
在升级到 Fuse Online 7.8 之前,您应该为 Fuse Online 备份和恢复数据库设置 Docker 镜像访问权限,如 升级前访问 Docker 镜像 中所述。
升级 Fuse Online 的步骤取决于您如何安装 Fuse Online:
- 如果您使用 OperatorHub 安装 Fuse 在线,请参阅使用 OperatorHub 升级 Fuse Online。
- 如果您使用安装脚本在线安装 Fuse,请参阅使用 安装脚本 升级 Fuse Online。
4.5.1. 在升级前访问 Docker 镜像
默认情况下,Fuse Online 升级过程从 docker.io
registry 中拉取 Fuse Online 备份和恢复数据库的 Docker 镜像,而不是从 registry.redhat.io
中拉取(如已知问题 https://issues.redhat.com/browse/ENTESB-15364中所述)。因为 docker.io
对免费下载造成服务限制,所以 Fuse 在线升级过程在尝试下载备份和恢复数据库镜像时可能会遇到以下错误:
error: code = Unknown desc = toomanyrequests: You have reached your pull rate limit
有关 Docker Hub 拉取速率限制的更多信息,请参阅 Docker 文档(https://www.docker.com/increase-rate-limits)。
为了避免遇到 Docker 限制错误,请在启动 Fuse Online 升级过程前,请确保您可以访问 Docker 镜像。如何访问 Docker 镜像取决于您的 OpenShift Container Platform (OCP)版本:
- 对于 OCP 4.6,将 Docker Hub 凭证添加到现有的 syndesis pull secret 中,如 在 OCP 4.6 上访问 Docker 镜像 中所述。当您将 Docker 凭证添加到 syndesis pull secret 时,会引发 API 上的 Docker Hub 限制,具体取决于 Docker Hub 帐户类型。
-
对于 OCP 3.11,拉取 Fuse Online 备份和恢复数据库镜像,从
docker.io
恢复到本地缓存,如 在 OCP 3.11 上访问 Docker 镜像 中所述。
4.5.1.1. 访问 OCP4 上的 Docker 镜像
为了避免在启动 Fuse Online 升级过程前遇到可能的 Docker 限制错误,请将 docker 凭证添加到 syndesis pull secret 中。
前提条件
有 OpenShift 集群管理员访问权限。
流程
将 Docker Hub 凭证添加到现有 syndesis pull secret 中:
使用您的管理员凭证登录到 OpenShift:
oc login -u system:admin
运行以下命令检索您的 syndesis pull secret:
oc get secrets syndesis-pull-secret -o=custom-columns=SECRET:.data.* --no-headers | base64 -d | jq
这个命令返回类似如下的输出,其中 <AUTH> 是您在 base64 中编码的用户名和密码:
{ "auths":{ "registry.redhat.io":{ "username":"<AUTH>", "password":"<AUTH>", "auth":"<AUTH>" }, <You can have more auths elements here> } }
要添加 Docker Hub registry 凭证,请编辑 pull secret,并将其保存到 PULL_SECRET 变量中:
PULL_SECRET=$(base64 -w 0 <<EOF { "auths":{ "registry.redhat.io":{ "username":"<AUTH>", "password":"<AUTH>", "auth":"<AUTH>" }, <You can have more auths elements here> }, "https://index.docker.io/v1/": { "auth": "<AUTH>" } } } EOF )
要修补您的 syndesis pull secret,请运行以下命令:
oc apply -f - <<EOF apiVersion: v1 kind: Secret metadata: name: syndesis-pull-secret data: .dockerconfigjson: $PULL_SECRET type: kubernetes.io/dockerconfigjson EOF
后续步骤
- 如果您使用 OperatorHub 安装 Fuse 在线,请参阅使用 OperatorHub 升级 Fuse Online。
- 如果您使用安装脚本在线安装 Fuse,请参阅使用 安装脚本 升级 Fuse Online。
4.5.1.2. 访问 OCP 3.11 上的 Docker 镜像
为了避免在 OCP 3.11 上启动 Fuse Online 升级过程前遇到可能的 Docker 限制错误,您应该将所需的镜像从 docker.io
拉取到本地缓存。
前提条件
有 OpenShift 集群管理员访问权限。
流程
使用您的 OpenShift 用户名和 OpenShift 集群 URL 登录 OpenShift 节点:
ssh login <user>@node1.<clusterUrl>
使用您的用户名和密码登录到 docker :
sudo docker login -u <username> -p <password> docker.io
运行以下命令拉取 PostgreSQL 镜像:
sudo docker pull crunchydata/crunchy-pgdump:centos7-10.11-4.2.1 sudo docker pull crunchydata/crunchy-pgrestore:centos7-10.11-4.2.1 sudo docker pull centos:7
PostgresQL 镜像拉取到 OpenShift 节点的内部 Docker 注册表。
- 为每个 OpenShift 节点重复前面的三个步骤。
后续步骤
按照使用安装脚本 升级 Fuse Online 中的步骤,升级 Fuse 在线。
4.5.2. 使用 OperatorHub 升级 Fuse 在线
从 OCP 4.6 开始,OperatorHub 中提供了 Fuse Online 7.8。如果使用 OCP 4.5,如果要安装 Fuse Online 7.8,则必须升级到 OCP 4.6。
注: 如果您使用安装脚本安装 Fuse Online 7.7,您应该使用安装脚本升级到 Fuse Online 7.8,如使用 安装脚本升级 Fuse Online 中所述。
安装 Fuse Online 时,您可以使用 fuse-online-v7.n
格式指定一个频道,其中 n
是当前的发行号。例如,对于 Fuse Online 7.8,频道为 fuse-online-v7.8
。
从 Fuse Online 7.8 版本升级到较新的 Fuse Online 7.8 版本取决于您在安装 Fuse Online 时选择 的批准策略 :
- 对于自动更新,当有新版本的 Fuse Online operator 可用时,OpenShift Operator Lifecycle Manager (OLM)将自动升级 Fuse Online 的运行实例,而无需人为干预。
- 对于 手动更新,当有新版 Operator 可用时,OLM 会创建更新请求。作为集群管理员,您必须手动批准该更新请求,才能将 Fuse Online operator 更新至新版本,如 OpenShift 文档中的 手动批准待处理的 Operator 升级 部分所述。
在基础架构升级过程中和之后,现有集成将继续与 Fuse Online 库和依赖项 旧版本 运行。要让它们使用更新版本运行,您必须重新发布它们。
对于 OCP 4.6 及更新的版本,要从 Fuse Online 7.7 升级到 7.8,请使用以下步骤。
流程
- 为了避免遇到 Docker 限制错误,请在启动 Fuse Online 升级过程前,将 docker 凭证添加到 syndesis pull secret 中,如 在升级前访问 Docker 镜像 中所述。
升级 Fuse Online 操作器:
- 在 OpenShift Web 控制台中,点 Operators > Installed Operators。
- 单击 Fuse Online 操作器,然后单击 Subscription。
- 在 频道旁边 点击 Edit 图标。
- 选择 fuse-online-v7.8 频道,然后单击 Save。
如果在安装 Fuse Online 时指定了 Manual 更新,请按照 OpenShift 文档中的 手动批准待处理的 Operator 升级部分中的说明批准 Operator 更新请求。
4.5.3. 使用安装脚本升级 Fuse Online
如果您使用安装脚本(而不是 OperatorHub)安装 Fuse Online,以下是升级 Fuse 在线的一般步骤:
集群管理员为 Fuse Online 备份和恢复数据库设置对 Docker 镜像的访问权限:
- 对于 OCP 3.11,拉取 Fuse Online 备份和恢复数据库镜像,从 docker.io 恢复到本地缓存。
- 对于 OCP 4.6,将 Docker Hub 凭证添加到现有的 syndesis pull secret 中。
- 下载最新的 Fuse Online 版本。
- 获取从集群管理员升级 Fuse Online 的权限。
- 运行更新脚本。
以下升级的升级步骤是相同的:
- 从 Fuse Online 7.7 到 Fuse Online 7.8
- 从 Fuse Online 7.8 版本到较新的 Fuse Online 7.8 版本
先决条件
您已在 OCP 现场安装并正在运行 Fuse Online 版本 7.7。或者,您在 OCP 3.11 上安装并正在运行 7.8 of Fuse Online 版本,并希望升级到新的应用程序镜像。
对于早期版本:
- 如果您在 OCP 上运行 Fuse Online 版本 7.6,则必须 升级到 7.7,然后升级到 7.8。
- 如果您在 OCP 上运行 Fuse Online 版本 7.5,则必须 升级到 7.6,然后升级到 7.7。
- 如果您在 OCP 上运行 Fuse Online 版本 7.4,则必须 升级到 7.5,然后升级到 7.6。
- 如果您在 OCP 上运行 Fuse Online 版本 7.3,则必须 升级到 7.4,然后您可以升级到 7.5。
- 如果您在 OCP 上运行 Fuse Online 版本 7.2,则必须 升级到 7.3。
- 如果您在 OCP 上运行 Fuse Online 版本 7.1,则必须 升级到 7.2。
-
已安装
oc
客户端工具,并连接到安装 Fuse Online 的 OCP 集群。 - 您有集群管理权限,这是此流程中前两个步骤所需的。
流程
- 为避免遇到可能的 Docker 限制错误,集群管理员会设置对 Docker 镜像的访问权限,如 在升级前访问 Docker 镜像 中所述。
集群管理员下载 Fuse Online 软件包,并授予用户在特定项目中升级 Fuse Online 的权限:
从以下位置下载包含 Fuse 在线安装脚本的软件包:
https://github.com/syndesisio/fuse-online-install/releases/tag/1.11
在文件系统的便捷位置解包下载的存档。
fuse-online-install-1.11
目录包含用于升级 Fuse Online 的脚本和支持文件。更改到包含提取的存档的目录。例如:
cd fuse-online-install-1.11
使用集群管理帐户登录到 OpenShift,例如:
oc login -u admin -p admin
切换到需要升级 Fuse Online 的 OpenShift 项目,例如:
oc project fuse-online-project
更新 Fuse Online 自定义资源定义:
bash install_ocp.sh --setup
仅授予在此项目中升级 Fuse Online 的权限。例如,以下命令向
developer
用户授予将 Fuse Online 升级权限。集群管理员运行此命令后,开发人员用户可以在此项目中升级 Fuse Online,本例中为fuse-online-project
:bash install_ocp.sh --grant developer
授予升级 Fuse Online 的权限的用户执行升级:
登录到 OpenShift,例如:
oc login -u developer
切换到要升级 Fuse Online 的项目,例如:
oc project fuse-online-project
要检查您要升级到的版本,请使用--
version
选项运行更新脚本,如下所示:bash update_ocp.sh --version
按如下方式调用更新脚本:
bash update_ocp.sh
要了解更多有关脚本的信息,请调用
bash update_ocp.sh --help
。在基础架构升级过程中和之后,现有集成将继续与 Fuse Online 库和依赖项 旧版本 运行。
升级运行的 Fuse Online 集成,如下所示:
- 在 Fuse Online 中,选择您要升级的集成。
- 选择 编辑。
- 选择 Publish 重新发布集成。
重新发布集成会强制重新构建使用最新的 Fuse Online 依赖项。