第 1 章 升级 Fuse 在线
Fuse Online 升级过程取决于是否在 Red Hat OpenShift Online 或 OpenShift Container Platform (OCP)上安装 Fuse Online。
- OpenShift Online - 当 Fuse 7.8 被发布时,OpenShift Online 上的 Fuse Online 基础架构会自动升级。您必须重新发布任何正在运行的集成,如 升级在 OpenShift Online 上运行的 Fuse Online 集成 中所述。
OCP - 要升级在 OpenShift Container Platform on-site 上运行的 Fuse Online 环境,您应该首先为 Fuse 备份和恢复数据库设置 Docker 镜像的访问权限,如 升级前访问 Docker 镜像 中所述。
升级 Fuse 的流程取决于您如何安装 Fuse:
- 如果您使用 OperatorHub 安装 Fuse,请参阅使用 OperatorHub 升级 Fuse。
- 如果您使用安装脚本安装 Fuse,请参阅使用 安装脚本 升级 Fuse。
要升级集成,您应该考虑 Apache Camel 更新,如 Camel 迁移注意事项 中所述。
1.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 镜像 中所述。
1.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。
1.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 在线。