在 OpenShift Container Platform 上安装和操作 Fuse Online
为 CI/CD 管道安装、配置和升级 Fuse 在线和导出/导入集成
摘要
前言
您可以在 OpenShift Container Platform (OCP)上安装和操作 Fuse Online。当 Fuse Online 运行现场时,除了 Fuse Online 在 OpenShift Dedicated 上运行时提供的功能之外,还提供其他功能。
现场 术语表示客户管理的环境;红帽不管理 OpenShift 环境。客户管理的环境可以在内部、云中或混合云中。
详情请查看以下主题:
第 1 章 在 OCP 4.x 上安装 Fuse Online
Fuse Online 是一个灵活、可定制的开源平台,提供核心集成功能作为服务。
Fuse Online 的每个安装都称为 Fuse Online 实例(或环境)。在给定的 OpenShift 项目中,可以只有一个 Fuse Online 实例。每个 Fuse Online 实例都有自己的 URL。在一个 OpenShift 集群中,可以有多个 Fuse Online 实例。
您可以以 OpenShift 开发人员用户身份(您不需要管理员特权)安装 Fuse Online。您可以安装默认的 Fuse Online 实例或自定义 Fuse Online 实例。对于自定义 Fuse Online 实例,您必须编辑默认自定义资源。
Fuse Online 安装过程需要访问 registry.redhat.io,这是容器镜像的红帽目录。
以下主题提供有关在线安装 Fuse 的详情:
1.1. 在 OCP 4.x 上安装 Fuse Online 所需的步骤概述
要在 OCP 4.x 上安装 Fuse Online,以下主要步骤:
- 生成用于配置 Red Hat Service Registry 身份验证的 OpenShift secret
- 将 Fuse Online Operator 从 OperatorHub 安装到集群中的项目(命名空间)。
- 另外,如果要包含外部数据库来持久保留连接和集成定义,请创建一个 OpenShift secret。
将 Fuse Online 实例添加到 OpenShift 4.x 项目。
(可选)编辑自定义资源以启用一个或多个附加组件功能,并/或实现一个或多个自定义配置设置。
1.1.1. 在受限环境中安装 Fuse Online 的注意事项(OCP 4.6 及更新的版本)
在受限环境中安装 Fuse Online 前,您必须完成以下任务:
- 将所有 Fuse Online 镜像镜像镜像(mirror)到您的专用网络上可用的位置。有关在受限环境中为 OpenShift Operator 安装镜像的更多信息,请参阅 OpenShift 文档中的 在受限网络中使用 Operator Lifecycle Manager 部分。
- 使用 Fuse 存储库内容设置自定义 Maven 存储库。有关详细信息,请参阅 红帽解决方案"如何为 Fuse 7 创建离线 Maven 存储库" https://access.redhat.com/solutions/3746581。
编辑 Fuse Online 自定义资源资源,如在安装 Fuse Online 前编辑默认自定义资源文件 中所述:
使用
mavenRepositories
设置来指定离线 Maven 存储库,以便 Fuse Online 可以在开发人员构建和运行集成时获取所需的依赖项。在以下示例中,将
customRepo
替换为离线 Maven 存储库的名称,并将https://customRepo
替换为您的离线存储库的 URL:components: server: features: maven: repositories: customRepo: https://customRepo
通过将
启用
的值改为 false 来禁用todo
addon。spec: addons: todo: enabled: false
在受限环境中安装 Fuse Online 后,您可以选择从 https://github.com/syndesisio/todo-example 下载 todo
应用程序,并按照 Readme 文件中的步骤将存储库 URL 更改为专用网络上可用的位置。
1.2. 在安装 Fuse Online 前,需要编辑默认自定义资源
Fuse Online 安装包含一个默认自定义资源,用于指定可配置 Fuse Online 环境附加组件功能和参数设置的默认设置。
如果您希望安装的 Fuse Online 环境需要安装 Fuse Online,则需要编辑默认自定义资源:
- 使用您为可以访问 Fuse Online 控制台的 OpenShift 路由指定的 URL。默认是安装过程计算此路由。
- 使用外部数据库存储连接和集成定义。默认值是环境使用内部数据库。
-
增加可用于保留连接和集成定义的内部存储量。默认值是
1Gi
,对于大多数 Fuse 在线环境都足够。
要为其中任何一个行为配置 Fuse Online 环境,您必须在安装 Fuse Online 时编辑自定义资源。换句话说,您无法更改安装的 Fuse Online 环境的配置来实现任何这些行为。另外,在安装为任何这些行为配置的 Fuse Online 环境后,您无法更改安装环境中的行为。
1.3. 配置 Fuse Online 的自定义资源属性的描述
除了只能在安装前指定的自定义资源属性外,您还可以在安装前或安装后更改多个自定义资源属性。
表 1 提供了可配置的自定义资源设置的简短描述,并指示何时在安装后更改它们:之前和/或之后。要实现您想要的 Fuse Online 配置,请使用此表中的信息来确定您需要在安装前更改自定义资源,或者如何在安装后更改它。然后按照适当的步骤操作:
对于 OCP 4.x:
对于 OCP 3.11:
功能/设置 | 当可以设置它时 | 规格 |
---|---|---|
增强的活动跟踪 | 仅在安装前设置 |
默认启用增强的活动跟踪。如果要自定义 Jaeger 配置,您可以将 |
外部数据库 | 仅在安装前设置 |
|
用于连接和集成 的内部存储容量。 | 仅在安装前设置 |
|
用于访问 Fuse Online 控制台的 OpenShift 路由 | 仅在安装前设置 |
|
内存和 CPU 每个组件定义自己的内存要求,这意味着每个 pod 对其分配的内存量有限值。如需有关限制和请求设置的信息,请参阅 OpenShift 文档中的 配置集群内存以满足容器内存和风险要求 的部分。
您还可以为服务器组件指定 CPU 资源。
| 仅在安装前设置 |
|
3scale 发现 | 安装前或安装后设置 |
|
备份 | 安装前或安装后设置 |
|
节点关联性 和 容限 决定 Fuse Online 基础架构组件的放置,并将 pod 集成到集群内的节点上。 节点关联性允许您为 Fuse Online pod 指定与要放置的一组节点的关联性。 通过容限(toleration),您可以控制 Fuse Online pod 在哪些节点上运行,并防止其他工作负载使用这些节点。 另请参阅: 配置 Fuse 在线 pod。 | 安装前或安装后设置 |
注: 对 Fuse Online 基础架构组件部署使用
|
集成限制 | 安装前或安装后设置 |
|
数据库连接池 您可以调整服务器连接池配置,以管理与数据库的连接。 有关数据库池配置的额外信息遵循此表。 | 安装前或安装后设置 |
|
Java 选项
您可以为
根据 Java 选项,您可以为组件指定不同的值。例如,您只能为 | 安装前或安装后设置 |
使用 Java 选项名称替换
将
例如,要配置 HTTP 代理: components:+ server: |
Maven 参数 | 安装前或安装后设置 |
|
Maven Repositories | 安装前或安装后设置 |
|
监控 | 安装前或安装后设置 |
|
公共 REST API | 安装前或安装后设置 |
|
Todo 应用 | 安装前或安装后设置 |
|
关于附加组件功能和配置设置
增强的活动跟踪
在安装 Fuse Online 时,默认启用 Jaeger 活动跟踪。Fuse Online 安装(来自 OperatorHub 或命令行脚本)检测到 OperatorHub 存在,并使用 OperatorHub 的订阅功能安装 Jaeger。对于 OperatorHub 不可用的有限情况,Fuse Online 使用自己的安装功能来安装 Jaeger。另外,您可以在安装 Fuse Online 前自定义 Jaeger 配置,如 关于为 Jaeger 监控配置 Fuse Online 中所述。
用于保留连接和集成的外部数据库
Fuse Online 的默认安装提供了 Fuse Online 的内部 PostgreSQL 数据库,用于持久连接和集成定义。您可以选择改为使用外部 PostgreSQL 数据库,如 PostgreSQL 的 Amazon RDS。
内部存储容量
1Gi
的默认设置对于大多数 Fuse Online 环境都足够。只有在红帽技术支持的建议时才会提高新 Fuse 在线安装的此设置。也就是说,您正在运行另一个 Fuse Online 环境,在其中遇到 Fuse Online 服务器错误,而红帽技术支持则决定需要安装一个新的 Fuse 在线环境(其具有大于默认卷容量)。要在已经运行 Fuse Online 的 OpenShift 项目中增加 Fuse Online 内部存储容量,您必须首先卸载 Fuse Online。请参阅从 OCP 项目卸载 Fuse Online。
数据库连接池配置
您可以配置以下
syndesis-server
数据库连接池属性:-
connectionTimeout
-syndesis-server
等待来自池的连接的最大毫秒数。最低可接受的连接超时为 250 ms。默认值为 30000 (30 秒)。 -
idletimeout
- 在删除连接前允许连接在池中处于闲置的最长时间(以毫秒为单位)。值 0 表示闲置连接永远不会从池中移除。允许的最小值为 10000 (10 秒)。默认值为 600000 (10 分钟)。 -
leakDetectionThreshold
- 在消息被记录显示可能的连接泄漏前,连接可以从池中移出的时间(以毫秒为单位)。值 0 表示禁用泄漏检测。启用泄漏检测的最低可接受值为 2000 (2 秒)。默认值为 0。 -
MaxLifetime
- 池中连接的最大生命周期(以毫秒为单位)。允许的最小值为 30000 (30 秒)。默认值为 1800000 (30 分钟)。 -
maximumPoolSize
- 池允许访问的最大大小,包括闲置和正在使用的连接。默认值为 10。 -
minimumIdle
- 池中维护的最小闲置连接数。默认为maximumPoolSize
的值。
-
1.4. 关于为 Jaeger 监控配置 Fuse Online
Jaeger 是用于在分布式服务间追踪事务的开源软件。它对于监控复杂微服务环境并进行故障排除特别有用。
当您安装 Fuse Online 时(可以从 OperatorHub 或使用命令行脚本)时,Fuse Online 安装会检测 OperatorHub 的存在,并使用 OperatorHub 的订阅功能安装 Jaeger。对于 OperatorHub 不可用的有限情况,Fuse Online 使用自己的安装功能来安装 Jaeger。
默认的 Fuse Online 环境配置所有必需的 Jaeger 组件。另外,您可以编辑 Fuse Online 自定义资源,以指定仅限客户端/独立的服务器配置或混合 Jaeger 客户端和 Jaeger Operator 配置。
默认 Jaeger 配置
basic, out-of-box 配置包含所有 Jaeger 组件。您可以通过试验其监控功能来开始了解 Jaeger 的工作原理。默认配置提供仅内存、有限的后端存储功能。
使用默认 Jaeger 配置安装 Fuse Online 具有以下结果:
- Fuse 在线组件具有 Jaeger 通信 URL。
- 已安装 Jaeger Operator。
- Jaeger 自定义资源配置了活动监控的默认配置。
带有默认 Jaeger 配置的 Fuse Online 安装有以下 合成
自定义资源规格:
apiVersion: syndesis.io/v1beta2 kind: Syndesis metadata: name: app spec: addons: jaeger: enabled: true
当 clientOnly
和 operatorOnly
未指定(默认设置为 false
时),Fuse Online 使用提供的 Jaeger 后端以及 Jaeger 服务器配置提供的默认仅内存存储。
仅客户端/独立于客户端的服务器配置
使用仅限客户端/独立于客户端的服务器配置,只有客户端 URL 连接配置为 Fuse Online 和外部配置的 Jaeger 后端之间的通信。Jaeger 后端的所有方面都是外部的,独立于 Fuse Online 环境,和 syndesis-operator
。这包括 Jaeger Operator 和 Jaeger 自定义资源。
要安装仅限客户端的 Jaeger 配置,请在安装 Fuse Online 前编辑自定义资源,如下所示:
-
将
clientOnly
设置为true
以添加 Jaeger 代理功能。 -
将
queryUri
设置为独立安装的 Jaeger 后端的 查询组件的 URI。 -
将
collectorUri
设置为独立安装的 Jaeger 后端的 收集器组件的 URI。
例如:
apiVersion: syndesis.io/v1beta2 kind: Syndesis metadata: name: app spec: addons: jaeger: enabled: true clientOnly: true queryUri: http://jaeger-query-hostname:443/api collectorUri: http://jaeger-collector-hostname:14268/api/traces
混合 Jaeger 客户端和 Operator 配置
使用混合 Jaeger 客户端和 Jaeger Operator 配置,Fuse Online 安装 Jaeger Operator 和 Jaeger 客户端功能。没有安装 Jaeger 自定义资源。您必须安装自己的 Jaeger 自定义资源,该资源定义 Jaeger 服务器配置。这可让您利用 Fuse Online 提供的功能,并为您自己的环境定制 Jaeger 配置,例如,您可以使用 Elasticsearch 或 Cassandra 进行数据存储。
安装混合 Jaeger 客户端和 Jaeger Operator 配置:
在安装 Fuse Online 前编辑自定义资源,如下例所示:
apiVersion: syndesis.io/v1beta2 kind: Syndesis metadata: name: app spec: addons: jaeger: enabled: true operatorOnly: true
将 Jaeger 自定义资源命名为
syndesis-jaeger
,如下例所示:apiVersion: jaegertracing.io/v1 kind: Jaeger metadata: name: syndesis-jaeger ... spec: ....
注: 但是,如果要将不同的名称用于 Jaeger 自定义资源,请在 Syndesis 自定义资源中设置
queryUri
和collectorUri
,如 Client-only/ independent server configuration 部分所述。
当创建带有 syndesis-jaeger
名称的 Jaeger 自定义资源时,Jaeger 实例会从 Fuse Online 集成收集数据。默认情况下,这个数据不会在 Fuse Online 活动日志中显示。要在 Fuse Online 活动日志中查看这些数据,请创建以下服务:
oc create -f - <<EOF apiVersion: v1 kind: Service metadata: labels: app: syndesis syndesis.io/app: syndesis syndesis.io/type: infrastructure syndesis.io/component: jaeger name: noauth-syndesis-jaeger-query spec: ports: - name: query port: 443 protocol: TCP targetPort: 16686 selector: app: jaeger app.kubernetes.io/name: syndesis-jaeger EOF
1.5. 创建用于使用外部数据库安装 Fuse 的 secret
如果要安装使用外部数据库来持久保留连接和集成定义的 Fuse 在线环境,请在安装 Fuse Online 前创建一个 OpenShift secret syndesis-global-config
。
先决条件
-
对于 OCP 3.11,您编辑了
default-cr.yml
文件,以指定使用外部数据库来持久保留连接和集成定义。 - Fuse Online 尚未安装。
-
已安装
oc
客户端工具,并连接到您计划安装 Fuse 在线的 OCP 集群。 - 具有集群管理权限的用户为您提供了在集群中具有访问权限的任何项目中安装 Fuse Online 的权限。
流程
使用有权限安装 Fuse Online 的帐户登录 OpenShift。例如:
oc login -u developer -p developer
创建并保存资源文件,如
my-fuse-onling-secret-cr.yml
,其中包含以下内容:apiVersion: v1 kind: Secret metadata: name: syndesis-global-config namespace: my-fuse-online-project type: Opaque data: POSTGRESQL_PASSWORD: base64-encoded-value
将
my-fuse-online-project
替换为计划为其安装 Fuse Online 环境的 OpenShift 项目的名称。将
base64 编码的值替换为
Fuse Online 将用作访问外部数据库的密码的 base64 编码值。如需有关 OpenShift 机密的信息,请参阅 Secret。
将 secret 添加到集群中,例如:
oc apply -f my-fuse-online-secret-cr.yml
结果
在集群中,syndesis-global-config
secret 可供使用指定外部数据库的自定义资源安装的 Fuse Online 环境使用。
后续步骤
对于 OCP 4.x,当使用操作器安装 Fuse Online 时,编辑自定义资源以指定使用外部数据库来持久保留连接和集成定义,如从 OperatorHub 安装 Fuse Online Operator 中所述。
对于 OCP 3.11,请在安装 Fuse Online 前按照编辑默认自定义资源文件 中的说明进行操作。
1.6. 安装 Fuse 在线
Fuse Online 是一个灵活、可定制的开源平台,提供核心集成功能作为服务。您可以以 OpenShift 开发人员用户身份(您不需要管理员特权)安装 Fuse Online。
以下是使用 operator 安装 Fuse Online 的一般步骤:
- 在 OpenShift 项目(命名空间)中创建 secret,以配置红帽容器 registry 身份验证,以便 Fuse Online Operator 可以访问所需的安装模板。
- 将 Fuse Online Operator 安装到 OpenShift 项目(命名空间)。安装 Operator 后,Operator 会在所选命名空间中运行。
- 从已安装的 Operator 创建 Fuse Online 实例。您可以使用默认设置创建实例,或通过编辑实例的自定义资源来自定义实例。然后,您可以从提供的 URL 访问 Fuse Online。
以下主题详细介绍了使用 operator 在 OCP 4.x 上安装 Fuse Online:
1.6.1. 创建 secret 以访问红帽 registry
在 OCP 4.x 上,在您可以为您要安装 Fuse Online Operator 的每个 OpenShift 项目安装 Fuse Online Operator 之前,您必须通过创建一个 secret 来配置对红帽容器 registry 进行身份验证。
先决条件
- 您可以访问要在其上安装 Fuse Online 的 OpenShift 集群。
-
已安装
oc
客户端工具,并连接到您要在其上安装 Fuse Online 的 OCP 集群。 - 您知道您的红帽客户门户网站帐户或 Red Hat Developer Program 帐户的登录凭证(用户名、密码和电子邮件地址)。如果您不想使用您的红帽帐户用户名和密码来创建 docker registry secret,您可以使用 registry 服务帐户 创建身份验证令牌。
流程
在终端窗口中,以管理或开发者身份登录到 OpenShift 服务器:
例如,以管理员身份:
oc login -u system:admin
例如,作为开发者:
oc login -u developer -p developer
切换到您要安装 Operator 的 OpenShift 项目:
oc project fuse-online
使用您的红帽客户门户网站帐户或 Red Hat Developer Program 帐户凭证创建 docker-registry secret。
oc create secret docker-registry syndesis-pull-secret \ --docker-server=registry.redhat.io \ --docker-username=CUSTOMER_PORTAL_USERNAME \ --docker-password=CUSTOMER_PORTAL_PASSWORD \ --docker-email=EMAIL_ADDRESS
如果命令成功,OpenShift 会返回以下输出:
secret/syndesis-pull-secret created
后续步骤
安装 Operator (创建订阅且 Operator 在所选命名空间中运行后),并在添加 Fuse Online 实例前,您必须将您创建的 secret 链接到 operator 服务帐户,如 第 1.6.2 节 “从 OperatorHub 安装 Fuse Online Operator” 所述。
1.6.2. 从 OperatorHub 安装 Fuse Online Operator
您可以使用 OpenShift Container Platform Web 控制台从 OperatorHub 安装 Fuse Online Operator。对您要在其中安装 Fuse Online 的每个 OpenShift 项目(命名空间)按照以下步骤操作。
先决条件
- 具有管理员或开发人员对 OpenShift 集群的访问权限。
- 您已配置了 Red Hat Container Registry 身份验证,如 创建 secret 以访问 Red Hat registry 中所述。
-
已安装
oc
客户端工具,并连接到您要在其上安装 Fuse Online 的 OCP 集群。
流程
- 在 Web 浏览器中,导航到浏览器中的 OpenShift 控制台,然后使用您的管理员或开发人员凭据登录控制台。
-
如果您以管理员身份登录,点 Operators,然后点 OperatorHub。
如果您以开发者身份登录,点 Add,然后点 From Catalog 卡。 - 在 Filter by keyword 字段中,键入 Fuse Online。
- 单击 Red Hat Integration - Fuse Online 卡。Fuse Online Operator 安装页面将打开。
点 Install。此时会打开 Install Operator 页面。
Update Channel 为 Operator 定义更新流,用于为订阅者推出更新。您提供的值取决于您的 OCP 4.x 版本:
- 对于 OCP 4.6 (及更高版本),将频道输入为 fuse-online-7.n,其中 n 是当前的发行号。例如,对于 Fuse 7.8,键入 fuse-online-v7.8。
- 对于 Installation mode,请从集群中的命名空间列表中选择一个命名空间(项目)。选择您在 Creating a secret 中创建 docker registry secret 时使用 的同一命名空间,以访问 Red Hat registry。
对于 批准策略,选择 Automatic 或 Manual 来配置 OpenShift 如何处理对 Fuse Online Operator 的更新。
- 如果选择 Automatic 更新,当 Fuse Online Operator 的新版本可用时,OpenShift Operator Lifecycle Manager (OLM)将自动升级 Fuse Online 的运行实例,而无需人为干预。
- 如果选择手动 更新,则当有较新版本的 Operator 可用时,OLM 会创建更新请求。然后,集群管理员必须手动批准该更新请求,以便 Fuse Online Operator 更新至新版本。
- 点 Install 使 Fuse Online Operator 在指定命名空间(项目)中可用。
- 要验证在项目中是否安装了 Fuse Online,点 Operators,然后点 Installed Operators 查看列表中的 Red Hat Integration - Fuse Online。
在终端窗口中,输入以下命令将 secret ( 创建 secret 中创建的 secret)链接到 Fuse Online Operator 服务帐户:
oc secrets link syndesis-operator syndesis-pull-secret --for=pull
后续步骤
安装 Fuse Online Operator 后,您可以将 Fuse Online 实例添加到 OpenShift 项目中。
1.6.3. 将 Fuse Online 实例添加到 OpenShift 4.x 项目
在 OpenShift 4.x 项目中安装 Fuse Online Operator 后,您可以将 Fuse Online 实例添加到 OpenShift 项目。Fuse Online 实例提供开发人员用于访问 Fuse Online 的 URL。
先决条件
- Fuse Online Operator 已安装到当前的 OpenShift 项目中。
在您的 OCP 环境中,Fuse Online 使用至少三个持久性卷可供 Fuse Online 使用。所有持久性卷都必须有以下配置要求:
-
capacity.storage:
1Gi
-
accessMode:
ReadWriteOnce
-
capacity.storage:
- 决定您要安装默认的 Fuse Online 实例或自定义实例。有关您可以指定的自定义资源设置的更多信息,请参阅在安装前编辑默认自定义资源。
流程
根据您的用户角色,按照以下步骤访问 Create Syndesis 页面:
如果您以管理员身份登录:
- 点 Operators,然后点 Installed Operators。
- 在 Name 列中,单击 Red Hat Integration - Fuse Online。Operator Details 页面将打开。
- 在 Provided APIs 下,单击 Create Instance。
如果您以开发者身份登录:
- 点 Add,然后点 Operator Backed 卡。
- 点 Syndesis CRD 卡。Syndesis CRD 页面将打开。
-
点 Create。
Create Syndesis 页面将打开。
- 输入名称或保留 app 作为默认值。
- 选择 YAML view 选项来查看默认自定义资源。
可选。编辑自定义资源。
有关您可以指定自定义资源设置的详情,会在安装 和描述 配置 Fuse Online 的自定义资源属性前看到编辑默认 自定义资源。
Fuse Online 安装过程使用您在自定义资源中指定的设置来确定已安装的 Fuse 在线环境的配置。
- 单击 Create 以创建 Fuse Online 实例。OpenShift 为 Fuse Online 启动 pod、服务和其他组件。
获取 Fuse Online 的 URL:
- 点 Networking > Routes。
- 确保已选中了正确的项目。
- 在 syndesis 行中,在 Location 列中点 Fuse Online 的 URL。
- 使用您的 OpenShift 登录凭据登录到 Fuse Online 环境。
第 2 章 在 OCP 3.11 上安装 Fuse Online
在 OCP 3.11 上安装 Fuse Online 需要集群管理员注册 Fuse Online 自定义资源定义,并为适当的用户授予安装权限。安装 Fuse Online 的用户必须确定是否要安装默认的 Fuse Online 环境或自定义 Fuse 在线环境。对于自定义 Fuse Online 环境,需要编辑默认自定义资源文件。
Fuse Online 的每个安装都被称为 Fuse Online 环境。在给定的 OpenShift 项目中,可以只有一个 Fuse Online 环境。每个 Fuse 在线环境都有自己的 URL。在一个 OpenShift 集群中,可以有多个 Fuse Online 环境。
Fuse Online 安装过程需要访问 registry.redhat.io,这是容器镜像的红帽目录。Fuse Online 不支持或测试在断开连接的环境中使用外部容器 registry、自定义 registry 或 registry。
以下主题提供有关在线安装 Fuse 的详情:
- 第 2.1 节 “在 OCP 3.11 上安装 Fuse Online 所需的步骤概述”
- 第 2.2 节 “注册用于部署 Fuse 在线资源的自定义资源定义”
- 第 2.3 节 “在安装 Fuse Online 前,需要编辑默认自定义资源”
- 第 2.4 节 “配置 Fuse Online 的自定义资源属性的描述”
- 第 2.5 节 “在安装 Fuse Online 前编辑默认自定义资源文件”
- 第 2.6 节 “关于为 Jaeger 监控配置 Fuse Online”
- 第 2.7 节 “创建用于使用外部数据库安装 Fuse 的 secret”
- 第 2.8 节 “运行在 OCP 3.11 上安装 Fuse Online 的脚本”
2.1. 在 OCP 3.11 上安装 Fuse Online 所需的步骤概述
要在 OCP on-site 上安装 Fuse Online,集群管理员必须执行一些任务,然后具有在特定 OpenShift 项目中安装 Fuse Online 的用户会执行一些任务并运行安装脚本。下图显示了工作流:
在 OCP 3.11 工作流镜像上安装 Fuse Online 的概述
要在 OCP 上安装 Fuse Online,主要步骤包括:
具有集群管理权限的用户:
- 下载安装脚本和相关文件。
-
使用 OpenShift
oc
客户端工具命令,在集群级别上注册自定义资源定义(CRD)。 -
使用 OpenShift
oc
客户端工具命令,为一个或多个用户授予在其项目中安装 Fuse Online 的权限。
对于您要安装 Fuse Online 的每个 OpenShift 项目,这是授予安装 Fuse Online 权限的用户:
- 决定是否安装默认的 Fuse Online 环境或定制的 Fuse Online 环境。自定义 Fuse 在线环境启用一个或多个附加组件功能,以及/或实施一个或多个自定义配置设置。
- 下载安装脚本和相关文件。
- 可选。如果需要自定义 Fuse Online 环境,请编辑 default-cr.yml 文件(在 Fuse Online 下载软件包中提供)。
- 可选。如果需要使用外部数据库来持久保留连接和集成定义,请创建一个 OpenShift secret。
- 调用安装脚本。
- 确认 Fuse Online 正在运行。
对于要安装的 Fuse Online 的每个 OpenShift 项目,集群管理员必须授予用户在该特定项目中安装 Fuse Online 的权限。
要安装默认的 Fuse Online 环境,具有安装 Fuse 在线下载并运行安装脚本的权限。不需要其他步骤。
2.2. 注册用于部署 Fuse 在线资源的自定义资源定义
要启用 Fuse Online 的安装,集群管理员可以注册自定义资源定义。管理员只需要为 OpenShift 集群执行此操作一次。然后,对于管理员希望安装 Fuse Online 的每个项目,管理员授予在该项目中安装 Fuse Online 的适当用户权限。
先决条件
- 您必须具有集群管理权限。
-
已安装
oc
客户端工具,并连接到安装 Fuse Online 的 OCP 集群。 在您的 OCP 环境中,Fuse Online 使用至少三个持久性卷可供 Fuse Online 使用。所有持久性卷都必须有以下配置要求:
-
capacity.storage:
1Gi
-
accessMode:
ReadWriteOnce
-
capacity.storage:
流程
从以下位置下载包含 Fuse Online 安装脚本的软件包:
https://github.com/syndesisio/fuse-online-install/releases/tag/1.11
-
在文件系统的便捷位置解包下载的存档。
fuse-online-install-1.11
目录包含用于安装 Fuse Online 的脚本和支持文件。 使用具有集群 admin 权限的账户登录 OpenShift。例如:
oc login -u admin -p adminpwd
运行以下命令确认您已正确连接,这将列出已在此集群中注册的自定义资源定义。
oc get crd
如果没有错误消息,则代表您被正确连接。
通过切换到
fuse-online-install-1.11
目录并执行以下命令,在集群级别注册自定义资源定义:bash install_ocp.sh --setup
再次运行以下命令来确认注册是否成功:
oc get crd
注册自定义资源定义的输出列表应包含
syndesis
。在您要安装 Fuse Online 的每个项目中,授予用户安装权限。对于每个项目:
切换到您希望用户能够安装 Fuse Online 的项目。例如:
oc project fuse-online-project
授予用户在该项目中安装 Fuse Online 的权限。例如,以下命令向
developer
用户授予安装 Fuse Online 的权限。运行此命令后,开发人员
用户可以在当前项目中安装 Fuse Online,本例中为fuse-online-project
:bash install_ocp.sh --grant developer
对您要为其 Fuse Online 安装授予权限的每个 OpenShift 项目重复这两个命令。单个用户可以在集群中的多个项目中安装 Fuse Online。要启用此功能,请切换到另一个项目并指定同一用户,例如:
oc project another-fuse-online-project
bash install_ocp.sh --grant developer
结果
syndesis
自定义资源定义在集群中注册。
后续步骤
有权安装 Fuse Online 的用户必须决定是否安装默认的 Fuse Online 环境或自定义 Fuse 在线环境。
2.3. 在安装 Fuse Online 前,需要编辑默认自定义资源
Fuse Online 安装包含一个默认自定义资源,用于指定可配置 Fuse Online 环境附加组件功能和参数设置的默认设置。
如果您希望安装的 Fuse Online 环境需要安装 Fuse Online,则需要编辑默认自定义资源:
- 使用您为可以访问 Fuse Online 控制台的 OpenShift 路由指定的 URL。默认是安装过程计算此路由。
- 使用外部数据库存储连接和集成定义。默认值是环境使用内部数据库。
-
增加可用于保留连接和集成定义的内部存储量。默认值是
1Gi
,对于大多数 Fuse 在线环境都足够。
要为其中任何一个行为配置 Fuse Online 环境,您必须在安装 Fuse Online 时编辑自定义资源。换句话说,您无法更改安装的 Fuse Online 环境的配置来实现任何这些行为。另外,在安装为任何这些行为配置的 Fuse Online 环境后,您无法更改安装环境中的行为。
2.4. 配置 Fuse Online 的自定义资源属性的描述
除了只能在安装前指定的自定义资源属性外,您还可以在安装前或安装后更改多个自定义资源属性。
表 1 提供了可配置的自定义资源设置的简短描述,并指示何时在安装后更改它们:之前和/或之后。要实现您想要的 Fuse Online 配置,请使用此表中的信息来确定您需要在安装前更改自定义资源,或者如何在安装后更改它。然后按照适当的步骤操作:
对于 OCP 4.x:
对于 OCP 3.11:
功能/设置 | 当可以设置它时 | 规格 |
---|---|---|
增强的活动跟踪 | 仅在安装前设置 |
默认启用增强的活动跟踪。如果要自定义 Jaeger 配置,您可以将 |
外部数据库 | 仅在安装前设置 |
|
用于连接和集成 的内部存储容量。 | 仅在安装前设置 |
|
用于访问 Fuse Online 控制台的 OpenShift 路由 | 仅在安装前设置 |
|
内存和 CPU 每个组件定义自己的内存要求,这意味着每个 pod 对其分配的内存量有限值。如需有关限制和请求设置的信息,请参阅 OpenShift 文档中的 配置集群内存以满足容器内存和风险要求 的部分。
您还可以为服务器组件指定 CPU 资源。
| 仅在安装前设置 |
|
3scale 发现 | 安装前或安装后设置 |
|
备份 | 安装前或安装后设置 |
|
节点关联性 和 容限 决定 Fuse Online 基础架构组件的放置,并将 pod 集成到集群内的节点上。 节点关联性允许您为 Fuse Online pod 指定与要放置的一组节点的关联性。 通过容限(toleration),您可以控制 Fuse Online pod 在哪些节点上运行,并防止其他工作负载使用这些节点。 另请参阅: 配置 Fuse 在线 pod。 | 安装前或安装后设置 |
注: 对 Fuse Online 基础架构组件部署使用
|
集成限制 | 安装前或安装后设置 |
|
数据库连接池 您可以调整服务器连接池配置,以管理与数据库的连接。 有关数据库池配置的额外信息遵循此表。 | 安装前或安装后设置 |
|
Java 选项
您可以为
根据 Java 选项,您可以为组件指定不同的值。例如,您只能为 | 安装前或安装后设置 |
使用 Java 选项名称替换
将
例如,要配置 HTTP 代理: components:+ server: |
Maven 参数 | 安装前或安装后设置 |
|
Maven Repositories | 安装前或安装后设置 |
|
监控 | 安装前或安装后设置 |
|
公共 REST API | 安装前或安装后设置 |
|
Todo 应用 | 安装前或安装后设置 |
|
关于附加组件功能和配置设置
增强的活动跟踪
在安装 Fuse Online 时,默认启用 Jaeger 活动跟踪。Fuse Online 安装(来自 OperatorHub 或命令行脚本)检测到 OperatorHub 存在,并使用 OperatorHub 的订阅功能安装 Jaeger。对于 OperatorHub 不可用的有限情况,Fuse Online 使用自己的安装功能来安装 Jaeger。另外,您可以在安装 Fuse Online 前自定义 Jaeger 配置,如 关于为 Jaeger 监控配置 Fuse Online 中所述。
用于保留连接和集成的外部数据库
Fuse Online 的默认安装提供了 Fuse Online 的内部 PostgreSQL 数据库,用于持久连接和集成定义。您可以选择改为使用外部 PostgreSQL 数据库,如 PostgreSQL 的 Amazon RDS。
内部存储容量
1Gi
的默认设置对于大多数 Fuse Online 环境都足够。只有在红帽技术支持的建议时才会提高新 Fuse 在线安装的此设置。也就是说,您正在运行另一个 Fuse Online 环境,在其中遇到 Fuse Online 服务器错误,而红帽技术支持则决定需要安装一个新的 Fuse 在线环境(其具有大于默认卷容量)。要在已经运行 Fuse Online 的 OpenShift 项目中增加 Fuse Online 内部存储容量,您必须首先卸载 Fuse Online。请参阅从 OCP 项目卸载 Fuse Online。
数据库连接池配置
您可以配置以下
syndesis-server
数据库连接池属性:-
connectionTimeout
-syndesis-server
等待来自池的连接的最大毫秒数。最低可接受的连接超时为 250 ms。默认值为 30000 (30 秒)。 -
idletimeout
- 在删除连接前允许连接在池中处于闲置的最长时间(以毫秒为单位)。值 0 表示闲置连接永远不会从池中移除。允许的最小值为 10000 (10 秒)。默认值为 600000 (10 分钟)。 -
leakDetectionThreshold
- 在消息被记录显示可能的连接泄漏前,连接可以从池中移出的时间(以毫秒为单位)。值 0 表示禁用泄漏检测。启用泄漏检测的最低可接受值为 2000 (2 秒)。默认值为 0。 -
MaxLifetime
- 池中连接的最大生命周期(以毫秒为单位)。允许的最小值为 30000 (30 秒)。默认值为 1800000 (30 分钟)。 -
maximumPoolSize
- 池允许访问的最大大小,包括闲置和正在使用的连接。默认值为 10。 -
minimumIdle
- 池中维护的最小闲置连接数。默认为maximumPoolSize
的值。
-
2.5. 在安装 Fuse Online 前编辑默认自定义资源文件
要安装默认的 Fuse Online 环境,您不需要编辑默认的自定义资源文件。请参阅在 OCP 4.x 上安装 Fuse Online,或在 OCP 3.11 上安装 Fuse Online。
要安装自定义 Fuse 在线环境,您必须在安装 Fuse Online 前编辑 default-cr.yml
文件。此文件位于 Fuse Online 下载软件包中。有些自定义资源设置只能在 Fuse Online 安装前指定。请参阅安装前,请参阅 编辑默认自定义资源时。
您可以在 Fuse Online 安装之前或之后指定其他自定义资源设置。请参阅配置 Fuse Online 的自定义资源属性的描述。
Fuse Online 安装过程使用您在 default-cr.yml
文件中指定的设置来创建 syndesis
自定义资源。syndesis
自定义资源设置决定了安装的 Fuse 在线环境的配置。
先决条件
- 您计划在 OCP 现场安装并运行 Fuse Online。
-
已安装
oc
客户端工具,它连接到您计划安装 Fuse Online 的 OCP 集群 - 具有集群管理权限的用户为您提供了在集群中具有访问权限的任何项目中安装 Fuse Online 的权限。
流程
如果您还没有下载包含 Fuse Online 安装脚本的软件包:
现在从以下位置下载它:
https://github.com/syndesisio/fuse-online-install/releases/tag/1.11
-
在文件系统的便捷位置解包下载的存档。
fuse-online-install-1.11
目录包含用于安装 Fuse Online 的脚本和支持文件。
使用有权限安装 Fuse Online 的帐户登录 OpenShift。例如:
oc login -u developer -p developer
-
在编辑器中打开
fuse-online-install-1.11/default-cr.yml
文件。 -
编辑
default-cr.yml
文件,以便启用功能并设置您想要的参数。要确定您需要指定的内容,请参阅配置 Fuse Online 的自定义资源属性的描述。 -
保存
default-cr.yml
文件。
结果
default-cr.yml
文件包含新 Fuse 在线安装的配置规格。
后续步骤
如果您编辑了 default-cr.yml
文件来指定外部数据库,请在安装 Fuse Online 前创建 secret 来使用外部数据库安装 Fuse Online 中的说明。否则,您可以按照在 OCP 3.11 上安装 Fuse Online 中的说明进行操作。
2.6. 关于为 Jaeger 监控配置 Fuse Online
Jaeger 是用于在分布式服务间追踪事务的开源软件。它对于监控复杂微服务环境并进行故障排除特别有用。
当您安装 Fuse Online 时(可以从 OperatorHub 或使用命令行脚本)时,Fuse Online 安装会检测 OperatorHub 的存在,并使用 OperatorHub 的订阅功能安装 Jaeger。对于 OperatorHub 不可用的有限情况,Fuse Online 使用自己的安装功能来安装 Jaeger。
默认的 Fuse Online 环境配置所有必需的 Jaeger 组件。另外,您可以编辑 Fuse Online 自定义资源,以指定仅限客户端/独立的服务器配置或混合 Jaeger 客户端和 Jaeger Operator 配置。
默认 Jaeger 配置
basic, out-of-box 配置包含所有 Jaeger 组件。您可以通过试验其监控功能来开始了解 Jaeger 的工作原理。默认配置提供仅内存、有限的后端存储功能。
使用默认 Jaeger 配置安装 Fuse Online 具有以下结果:
- Fuse 在线组件具有 Jaeger 通信 URL。
- 已安装 Jaeger Operator。
- Jaeger 自定义资源配置了活动监控的默认配置。
带有默认 Jaeger 配置的 Fuse Online 安装有以下 合成
自定义资源规格:
apiVersion: syndesis.io/v1beta2 kind: Syndesis metadata: name: app spec: addons: jaeger: enabled: true
当 clientOnly
和 operatorOnly
未指定(默认设置为 false
时),Fuse Online 使用提供的 Jaeger 后端以及 Jaeger 服务器配置提供的默认仅内存存储。
仅客户端/独立于客户端的服务器配置
使用仅限客户端/独立于客户端的服务器配置,只有客户端 URL 连接配置为 Fuse Online 和外部配置的 Jaeger 后端之间的通信。Jaeger 后端的所有方面都是外部的,独立于 Fuse Online 环境,和 syndesis-operator
。这包括 Jaeger Operator 和 Jaeger 自定义资源。
要安装仅限客户端的 Jaeger 配置,请在安装 Fuse Online 前编辑自定义资源,如下所示:
-
将
clientOnly
设置为true
以添加 Jaeger 代理功能。 -
将
queryUri
设置为独立安装的 Jaeger 后端的 查询组件的 URI。 -
将
collectorUri
设置为独立安装的 Jaeger 后端的 收集器组件的 URI。
例如:
apiVersion: syndesis.io/v1beta2 kind: Syndesis metadata: name: app spec: addons: jaeger: enabled: true clientOnly: true queryUri: http://jaeger-query-hostname:443/api collectorUri: http://jaeger-collector-hostname:14268/api/traces
混合 Jaeger 客户端和 Operator 配置
使用混合 Jaeger 客户端和 Jaeger Operator 配置,Fuse Online 安装 Jaeger Operator 和 Jaeger 客户端功能。没有安装 Jaeger 自定义资源。您必须安装自己的 Jaeger 自定义资源,该资源定义 Jaeger 服务器配置。这可让您利用 Fuse Online 提供的功能,并为您自己的环境定制 Jaeger 配置,例如,您可以使用 Elasticsearch 或 Cassandra 进行数据存储。
安装混合 Jaeger 客户端和 Jaeger Operator 配置:
在安装 Fuse Online 前编辑自定义资源,如下例所示:
apiVersion: syndesis.io/v1beta2 kind: Syndesis metadata: name: app spec: addons: jaeger: enabled: true operatorOnly: true
将 Jaeger 自定义资源命名为
syndesis-jaeger
,如下例所示:apiVersion: jaegertracing.io/v1 kind: Jaeger metadata: name: syndesis-jaeger ... spec: ....
注: 但是,如果要将不同的名称用于 Jaeger 自定义资源,请在 Syndesis 自定义资源中设置
queryUri
和collectorUri
,如 Client-only/ independent server configuration 部分所述。
当创建带有 syndesis-jaeger
名称的 Jaeger 自定义资源时,Jaeger 实例会从 Fuse Online 集成收集数据。默认情况下,这个数据不会在 Fuse Online 活动日志中显示。要在 Fuse Online 活动日志中查看这些数据,请创建以下服务:
oc create -f - <<EOF apiVersion: v1 kind: Service metadata: labels: app: syndesis syndesis.io/app: syndesis syndesis.io/type: infrastructure syndesis.io/component: jaeger name: noauth-syndesis-jaeger-query spec: ports: - name: query port: 443 protocol: TCP targetPort: 16686 selector: app: jaeger app.kubernetes.io/name: syndesis-jaeger EOF
2.7. 创建用于使用外部数据库安装 Fuse 的 secret
如果要安装使用外部数据库来持久保留连接和集成定义的 Fuse 在线环境,请在安装 Fuse Online 前创建一个 OpenShift secret syndesis-global-config
。
先决条件
-
对于 OCP 3.11,您编辑了
default-cr.yml
文件,以指定使用外部数据库来持久保留连接和集成定义。 - Fuse Online 尚未安装。
-
已安装
oc
客户端工具,并连接到您计划安装 Fuse 在线的 OCP 集群。 - 具有集群管理权限的用户为您提供了在集群中具有访问权限的任何项目中安装 Fuse Online 的权限。
流程
使用有权限安装 Fuse Online 的帐户登录 OpenShift。例如:
oc login -u developer -p developer
创建并保存资源文件,如
my-fuse-onling-secret-cr.yml
,其中包含以下内容:apiVersion: v1 kind: Secret metadata: name: syndesis-global-config namespace: my-fuse-online-project type: Opaque data: POSTGRESQL_PASSWORD: base64-encoded-value
将
my-fuse-online-project
替换为计划为其安装 Fuse Online 环境的 OpenShift 项目的名称。将
base64 编码的值替换为
Fuse Online 将用作访问外部数据库的密码的 base64 编码值。如需有关 OpenShift 机密的信息,请参阅 Secret。
将 secret 添加到集群中,例如:
oc apply -f my-fuse-online-secret-cr.yml
结果
在集群中,syndesis-global-config
secret 可供使用指定外部数据库的自定义资源安装的 Fuse Online 环境使用。
后续步骤
对于 OCP 4.x,当使用操作器安装 Fuse Online 时,编辑自定义资源以指定使用外部数据库来持久保留连接和集成定义,如从 OperatorHub 安装 Fuse Online Operator 中所述。
对于 OCP 3.11,请在安装 Fuse Online 前按照编辑默认自定义资源文件 中的说明进行操作。
2.8. 运行在 OCP 3.11 上安装 Fuse Online 的脚本
Fuse Online 安装脚本根据 default-cr.yml
文件中的规格安装 Fuse 在线环境,该文件位于 Fuse Online 下载软件包中。要安装默认环境,不需要编辑该文件。要安装自定义环境,您必须在运行安装脚本前编辑 default-cr.yml
文件。
先决条件
- OCP 在现场运行。
-
oc
客户端工具已安装并连接到您要在其中安装 Fuse Online 的 OCP 集群。 - 具有集群管理权限的用户允许您在计划安装 Fuse Online 的项目中安装 Fuse Online 的权限。
-
如果您确定需要在安装前编辑
default-cr.yml
文件,则完成这些编辑。(在安装 Fuse Online 之前编辑默认自定义资源文件时) -
如果编辑的
default-cr.ym
文件为持久性连接和集成定义指定一个外部数据库,您创建了用于访问外部数据库的 Openshift secret。(使用外部数据库创建用于在线安装 Fuse 的 secret) -
您有一个 红帽开发人员帐户,您知道您的用户名和密码。安装脚本提示您输入这些凭证,以便它能够针对
https://developers.redhat.com
进行身份验证。有关创建帐户的详情,请参考 访问和配置 Red Hat Registry。
流程
如果您还没有下载包含 Fuse Online 安装脚本的软件包:
从以下位置下载它:
https://github.com/syndesisio/fuse-online-install/releases/tag/1.11
-
在文件系统的便捷位置解包下载的存档。
fuse-online-install-1.11
目录包含用于安装 Fuse Online 的脚本和支持文件。
使用有权限安装 Fuse Online 的帐户登录 OpenShift。例如:
oc login -u developer -p developer
切换到您要安装 Fuse Online 的 OpenShift 项目,例如:
oc project my-fuse-online-project
或者,当运行安装脚本时,您可以指定--
project my-fuse-online-project
。在您下载了安装脚本的目录中,调用安装脚本:
bash install_ocp.sh
要了解安装脚本选项,请调用
bash install_ocp.sh --help
命令。确认用于安装 Fuse Online 的
syndesis
-operator调用以下命令以显示
syndesis
自定义资源内容:oc describe syndesis/app
检查自定义资源的内容。
如果它不包含所有更新,则自定义资源中可能存在语法错误。您必须卸载 Fuse Online 并再次尝试定义有效的自定义资源。请参阅从 OCP 项目卸载 Fuse Online。
确认安装成功:
显示位于
https://openshift-route
的 OpenShift OAuth 代理登录页面。如果您选择让安装脚本计算 OpenShift 路由,则脚本将在执行结束时显示计算的路由。将
openshift-route
替换为脚本提供的值。如果您编辑了
default-cr.yml
文件,为 Fuse Online 指定routeHostname
,请将openshift-route
替换为您指定的路由。- 如果您还没有登录到 OpenShift 控制台,会显示其登录页面。输入您的 OpenShift 用户名和密码来登录。
Fuse Online 主页将立即或登录 OpenShift 控制台后出现。
第 3 章 更改 Fuse 在线环境的配置
在 OpenShift Container Platform (OCP)上安装 Fuse Online 后,您可以更改 Fuse Online 环境的配置。
详情请查看以下主题:
- 第 3.1 节 “安装后允许 Fuse 在线配置更改”
- 第 3.2 节 “更改 Fuse 在线配置的一般流程”.
配置(prodname} 和 3scale API 发现):
- 第 3.5 节 “配置 HTTP 代理”
- 第 3.6 节 “将示例应用程序添加到 OCP 上运行的 Fuse Online 环境中”
3.1. 安装后允许 Fuse 在线配置更改
在 OpenShift Container Platform (OCP)上安装 Fuse Online 后,您可以更改其配置来启用/禁用某些功能或更改一些配置设置。下表列出了您可以更改的特性和设置、更改的影响以及查找更改说明的位置。
当更改 syndesis
自定义资源时,会导致重新部署 syndesis-server
或当您删除 syndesis-server
pod 时,OpenShift 会创建一个新的服务器 Pod。在新服务器就绪前,最多需要一到两分钟。在这段时间中,Fuse Online 控制台不可用。在部署新服务器时,运行的集成会继续运行。新部署准备就绪后,新服务器将加载集成状态。当 syndesis-server
pod 状态为 Running
并刷新 Fuse Online 控制台时,您可以再次使用 Fuse Online 控制台来显示集成、连接、消息和运行时间的值。
功能/设置 | 更改的影响 | 信息 |
---|---|---|
3scale 发现 |
Redploys | |
Backups |
在 | |
监控 | 安装新的 OpenShift 资源 | |
公共 Fuse Online REST API 端点 |
创建 | |
用于测试集成的 Todo 应用程序示例 |
创建新的 | |
Java 选项 |
重新部署 | |
Maven 配置 |
您必须删除 | |
将 Fuse Online pod 分配给 OpenShift 集群节点 | 重新部署 Fuse Online 基础架构组件和集成 pod | |
Fuse 在线组件可用的内存 | 使用更改的内存重新部署组件 | |
允许运行的集成数 |
您必须删除 | |
数据库连接池 |
Redploys |
3.2. 更改 Fuse 在线配置的一般流程
对于在 OCP 上安装的 Fuse Online 环境,您可以通过更新其合成自定义资源来更改其配置。保存更改后,如果它们语法正确,OpenShift 会用您的更新更新
syndesis-operator
。语法错误会阻止更新。
在编辑 syndesis
自定义资源时,请确保不要指定无效的设置,其语法正确。syndesis-operator
将使用更新的 syndesis
自定义资源,即使语法正确设置无效。如果您确实指定了无效的设置,则只在 OpenShift 完成更新后了解它。在更新过程中,OpenShift 会删除无效的设置。
先决条件
- Fuse Online 安装在 OCP 现场。
-
已安装
oc
客户端工具,并连接到安装 Fuse Online 的 OCP 集群。 - 您有在要更改 Fuse 在线配置的项目中安装 Fuse Online 的权限。
-
您查询 了配置 Fuse Online 的自定义资源属性的描述,以了解安装后允许哪些配置更改,以及如何为您要进行配置更改更新合成自定义资源。
流程
使用有权限安装 Fuse Online 的帐户登录 OpenShift。例如:
oc login -u developer -p developer
切换到运行您要更改的配置的 Fuse Online 环境的 OpenShift 项目。例如:
oc project my-fuse-online-project
可选。在
syndesis
自定义资源中创建当前设置的备份副本,仅当您更新并保存不正确的内容时。例如,调用以下命令会在syndesis_app_backup.yml
文件中保存备份:oc get syndesis app -o yaml > syndesis_app_backup.yml
调用以下命令以在编辑器中打开 syndesis 自定义资源:
oc edit syndesis/app
注: 这个流程描述了如何在编辑器中打开自定义资源文件来设置配置。另外,您可以使用
oc patch
命令来编辑自定义资源。-
根据需要编辑
syndesis
自定义资源。 保存资源。
根据您编辑应用到的对象类型,您的更新会触发
syndesis-operator
在保存资源时重新部署一些 Fuse Online 组件。如果您更改了自定义资源的
components.server.features
部分中的maven:additionalArguments
、MavenRepositories
和integrationLimit
属性,则必须通过删除syndesis-server
pod 来触发重新部署。使用这个命令:oc delete 'oc get -o name pod -l syndesis.io/component=syndesis-server'
等待 2 分钟或三分钟,然后确认
syndesis
自定义资源已正确更新:调用以下命令以显示
syndesis
自定义资源的内容:oc describe syndesis/app
检查内容。
如果
syndesis
自定义资源不包含您需要的设置,请再次编辑它以指定有效的设置。
结果
对 syndesis
自定义资源的大多数更改都会触发 syndesis-operator
以重新部署 Fuse Online syndesis-server
组件。这意味着 OpenShift 会创建一个新的服务器 Pod。有些更改需要您删除 syndesis-server
容器集,以便 OpenShift 创建新的服务器 Pod。
在新服务器就绪前,最多需要一到两分钟。在这段时间中,Fuse Online 控制台不可用。在部署新服务器时,运行的集成会继续运行。新部署准备就绪后,新服务器将加载集成状态。您可以在以下情况下再次使用 Fuse Online 控制台:
-
syndesis-server
pod 状态为Running
。 - 刷新 Fuse Online 控制台会显示集成、连接、消息和运行时间的值。
对 syndesis
自定义资源的一些更改更新 Fuse 在线配置,但不需要重新部署 syndesis-server
。例如:
-
当您更新
syndesis
自定义资源来指定备份时,在备份作业发生前需要几秒钟。
每个配置更改的效果是在安装后 Fuse 在线配置更改允许 的效果。
3.3. 配置 Fuse Online 和 3scale API 发现
如果创建 API 供应商集成,您可能需要为 Red Hat 3scale 中的该集成启用 API 发现。默认行为是 API 不会公开进行 3scale 中的自动发现。
如果启用 3scale 发现,您可以稍后选择性地禁用它。
3.3.1. 配置 Fuse Online 以启用 API 的 3scale 发现
如果创建 API 供应商集成,您可能需要为 Red Hat 3scale 中的该集成启用 API 发现。默认行为是 API 不会公开进行 3scale 中的自动发现。启用发现时,您必须提供 3scale 用户界面的 URL。
要将 Fuse Online 配置为在安装 Fuse Online 前启用 API 3scale 发现,请参阅配置 Fuse Online 的自定义资源属性的描述。
安装后,您可以通过更新 syndesis
自定义资源来启用发现功能。执行此操作的说明包括在此文档中。启用发现功能时,它仅适用于更新资源时您连接到的 OpenShift 项目。
打开 3scale 服务发现意味着:
默认行为是 3scale 发布 API 供应商集成。当 3scale 发布 API 供应商集成时:
- Fuse Online 不提供正在运行的 API 供应商集成的外部 URL。
- 该 API 只能通过 3scale 访问。需要 3scale 中的配置来公开端点。详情请参阅 Red Hat 3scale API Management、Service Discovery。
- API 提供程序集成的创建者可以禁用该集成的 3scale 发现。换句话说,每个 API 提供程序集成创建者都可以选择集成的 API 是否可以被发现。
先决条件
- Fuse Online 安装在 OCP 现场。
-
已安装
oc
客户端工具,并连接到安装 Fuse Online 的 OCP 集群。 - 您有在要启用 API 发现的项目中安装 Fuse Online 的权限。
- 您知道 OpenShift 集群中的 3scale 项目的名称。
流程
使用有权限安装 Fuse Online 的帐户登录 OpenShift。例如:
oc login -u developer -p developer
切换到运行 Fuse Online 的 OpenShift 项目。您只为此项目启用发现功能。例如:
oc project my-fuse-online-project
添加允许 3scale 项目查看 Fuse Online 集成的权限:
oc adm policy add-cluster-role-to-user view system:serviceaccount:<3scale-project>:amp
例如,如果 OpenShift 上的 3scale 项目命名为
my3scale
:oc adm policy add-cluster-role-to-user view system:serviceaccount:my3scale:amp
编辑
syndesis
自定义资源:调用以下命令,这通常在编辑器中打开资源:
oc edit syndesis
通过将
managementUrlFor3scale
设置为 3scale 用户界面的 URL 来编辑资源。结果类似如下:spec: components: server: features: managementUrlFor3scale: https://3scale-admin.apps.mycluster.com
- 保存资源。
可选。要确认已在您切换到的项目上打开发现,请输入以下命令:
oc describe dc/syndesis-server
打开发现后,此命令的输出会显示
OPENSHIFT_MANAGEMENT_URL_FOR3SCALE
环境变量已设置为您在自定义资源中指定的 URL。
结果
对 syndesis
自定义资源的更改会触发 syndesis-operator
(负责安装 Fuse Online)以重新部署 syndesis-server
。在切换到的 OpenShift 项目中,新的默认行为是 API 在 3scale 中公开以发现。
不要编辑 syndesis-server DeploymentConfig
对象,以设置 OPENSHIFT_MANAGEMENT_URL_FOR3SCALE
环境变量。这不起作用,因为 syndesis-operator
会还原您的更改。
确保仅部署 Fuse Online,并始终根据合成自定义资源进行部署。
syndesis
-operator
3.3.2. 配置 Fuse Online 以禁用 API 的 3scale 发现
如果您遵循 配置 Fuse Online 以启用 API 的 3scale 发现 的步骤,则每个 API 供应商集成创建者都可以选择是否可发现集成 API。在某些情况下,您可能想要重新配置默认行为,即集成 API 在 3scale 中不可发现,例如,您可能想要在 Fuse Online 中编辑和测试 API 供应商集成。为此,请更新 Fuse Online syndesis
自定义资源,以便指定 managementUrlFor3scale
键和值的行被注释掉。这将禁用 3scale 发现。然后重新发布任何使用可发现 API 发布的 API 供应商集成。
先决条件
- Fuse Online 安装在 OCP 现场。
- 您有在要禁用发现的项目中安装 Fuse Online 的权限。
-
已安装
oc
客户端工具,并连接到安装 Fuse Online 的 OCP 集群。 - 在 OpenShift 项目中启用了 3scale 发现,如 配置 Fuse Online 以启用 API 的 3scale 发现 中所述。
流程
使用有权限安装 Fuse Online 的帐户登录 OpenShift。例如:
oc login -u developer -p developer
切换到启用了 3scale 发现的 OpenShift 项目。例如:
oc project my-fuse-online-project
编辑
syndesis
自定义资源:调用以下命令,这通常在编辑器中打开资源:
oc edit syndesis
通过在指定
managementUrlFor3scale
键和值的行开头插入 hash 符号(#
)来编辑资源。这使得行成为禁用发现的注释。结果应类似如下:spec: components: server: features: # managementUrlFor3scale: https://3scale-admin.apps.mycluster.com
保存资源。
这会更新
syndesis
自定义资源。此更新移除了OPENSHIFT_MANAGEMENT_URL_FOR3SCALE
环境变量。对syndesis
自定义资源的更改会触发syndesis-operator
(负责安装 Fuse Online)以重新部署syndesis-server
。新的默认行为是 API 不再在 3scale 中发现。
不要编辑
syndesis-server DeploymentConfig
对象,以删除OPENSHIFT_MANAGEMENT_URL_FOR3SCALE
环境变量的设置。这不起作用,因为syndesis-operator
会还原您的更改。syndesis
-operator重新发布启用了发现且在您刚刚禁用发现的项目中创建的任何 API 供应商集成。
换句话说,如果您在为创建 API 供应商集成的项目启用了发现时禁用了该集成的 API 发现功能,则不需要重新发布 API 供应商集成。
结果
在相关 OpenShift 项目中创建的 API 供应商集成的 API 不再可在 3scale 中发现。
当 Fuse Online 发布(或重新发布)位于相关项目中的 API 提供程序集成时,Fuse Online 提供调用 API 提供程序集成操作的外部 URL。
3.4. 配置 Fuse 在线 pod
您可以通过在 Fuse Online 自定义资源中设置节点关联性和容限选项,配置 Fuse Online 基础架构组件并将 pod 集成到 OpenShift 集群的节点上。nodeAffinity
选项允许您指定对要放置的一组节点的 Fuse Online pod 的关联性。tolerations
选项允许您控制 Fuse Online pod 在哪些节点上运行,并防止其他工作负载使用这些节点。
您可以在安装 Fuse Online 之前或之后编辑 Fuse Online 自定义资源来设置这些选项。
您可以为基础架构组件部署指定节点关联性或容限设置,独立于集成部署:
infraScheduling
- 指定infraScheduling
选项,以为这些 Fuse Online 基础架构部署配置节点关联性和容限设置:-
syndesis-db
-
syndesis-meta
-
syndesis-prometheus
syndesis-ui
注 :
syndesis-operator
部署不受节点关联性或容限的更改的影响,因为它是 Fuse Online 管理组件。
-
integrationScheduling
- 指定integrationScheduling
选项,为所有 Fuse Online 集成部署配置节点关联性和容限设置。注意 :如果要知道 Fuse Online 部署是否为集成部署,请检查部署名称。您可以使用
oc get pods
命令查看正在运行的部署列表。如果部署名称包含 a-i
前缀,则它是一个集成部署,如i-my-integration
。
以下流程描述了如何使用 oc patch
命令编辑自定义资源。另外,您可以编辑自定义资源,如以下主题所述:
- 如果您已经安装了 Fuse Online,请按照"更改 Fuse 在线配置" 中的步骤打开自定义资源。
如果您还没有安装 Fuse Online,请按照这些主题中的步骤打开自定义资源,具体取决于您的 OCP 版本:
- 对于 OCP 4.x: 将 Fuse Online 实例添加到 OpenShift 4.x 项目
- 对于 OCP 3.11: 在安装 Fuse Online 前编辑默认自定义资源文件
先决条件
- Fuse Online 安装在 OCP 现场。
-
已安装
oc
客户端工具,并连接到安装 Fuse Online 的 OCP 集群。
流程
使用以下语法使用
oc patch
命令配置 容限 设置。为 Fuse Online 基础架构组件部署指定infraScheduling
,或为 Fuse Online 集成部署指定integrationScheduling
:oc patch syndesis/app --type=merge -p '{"spec":{"infraScheduling"|"infraScheduling":{"tolerations":[{"key":"_value1_","operator":"_value2_","effect":"_value3_"},{"key":"_value4_","operator":"_value5_","effect":"_value6_"}]}}}'
例如,以下命令为 Fuse Online 基础架构组件添加容限:
oc patch syndesis/app --type=merge -p '{"spec":{"infraScheduling":{"tolerations":[{"key":"tol_1","operator":"Equal","effect":"NoSchedule"},{"key":"tol_2","operator":"Equal","value":"value2","effect":"NoSchedule"}]}}}'
使用以下语法使用
oc patch
命令 配置节点关联性设置。为 Fuse Online 基础架构组件部署指定infraScheduling
,或为 Fuse Online 集成部署指定integrationScheduling
:oc patch syndesis/app --type=merge -p '{"spec":{"infraScheduling"|"infraScheduling":{"affinity":{"nodeAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"weight":_value1_,"preference":{"matchExpressions":[{"key":"_value1_","operator":"_value2_","values":["_value3_","_value4_"]}]}}]}}}'
例如,以下命令将 nodeAffinity 设置为 Fuse Online 基础架构组件和集成:
oc patch syndesis/app --type=merge -p '{"spec":{"infraScheduling":{"affinity":{"nodeAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"weight":11,"preference":{"matchExpressions":[{"key":"_affinity","operator":"In","values":["foo","bar"]}]}}]}}},"integrationScheduling":{"affinity":{"nodeAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"weight":22,"preference":{"matchExpressions":[{"key":"my_affinity2","operator":"In","values":["foo","bar"]}]}}]}}}}}'
要删除配置设置,请使用
oc patch
命令中的remove
选项,如下例所示:以下示例命令从 Fuse Online 集成的 nodeAffinity 中删除
preferredDuringSchedulingIgnoredDuringExecution
设置:oc patch syndesis/app --type=json -p '[{"op": "remove", "path": "/spec/integrationScheduling/affinity/nodeAffinity/preferredDuringSchedulingIgnoredDuringExecution" }]'
以下示例从 Fuse Online 基础架构组件中删除容限:
oc patch syndesis/app --type=json -p '[{"op": "remove", "path": "/spec/infraScheduling/tolerations" }]'
其他资源
如需有关容限和节点关联性的信息,请参阅了解节点关联性 以及使用 OpenShift 文档中的 节点污点部分控制 pod 放置。
3.5. 配置 HTTP 代理
许多服务使用 HTTP 代理来过滤和保护与其他服务或组件的通信。要在 Fuse Online 组件和集成上配置 HTTP 代理,请在安装 Fuse Online 之前或之后编辑 Fuse Online 自定义资源。
前提条件
- 您知道 HTTP 代理的主机和端口值。
流程
在编辑器中打开自定义资源:
如果您已经安装了 Fuse Online,请按照"更改 Fuse 在线配置" 中的步骤打开自定义资源。
如果您还没有安装 Fuse Online,请按照这些主题中的步骤打开自定义资源,具体取决于您的 OCP 版本:
- 对于 OCP 4.x: 将 Fuse Online 实例添加到 OpenShift 4.x 项目
- 对于 OCP 3.11: 在安装 Fuse Online 前编辑默认自定义资源文件
对于
syndesis-server
和syndesis-meta
组件,设置 Java Options (javaOptions
)参数,并为 HTTP 代理主机和端口指定值。对syndesis-server
和syndesis-meta
使用相同的 HTTP 代理值。例如:
spec: components: server: javaOptions: -Dhttp.proxyHost=10.0.0.100 -Dhttp.proxyPort=8800 meta: javaOptions: -Dhttp.proxyHost=10.0.0.100 -Dhttp.proxyPort=8800
对于 Fuse Online integrations,设置 Maven 参数(additionalArguments)参数。例如:
spec: components: server: features: maven: additionalArguments: "-Dhttp.proxy=10.0.0.100 -Dhttp.proxyPort=8800"
保存自定义资源。
如果已安装 Fuse Online,则会重新部署
syndesis-server
pod 以响应第 2 步中的 javaOptions 更新。(请注意,如果您只更改 MavenadditionalArguments
参数,您必须删除syndesis-server
pod 以触发重新部署。)重新发布任何使用 HTTP 代理的正在运行的集成。
- 在 Fuse Online 中,选择您要更新的集成。
- 选择 编辑。
- 选择 Publish。
Fuse Online 在重建集成时使用 HTTP 代理设置。
3.6. 将示例应用程序添加到 OCP 上运行的 Fuse Online 环境中
为了帮助新用户了解如何创建与 Fuse Online 的集成,您可以在 Fuse Online 环境中添加示例应用程序。ToDo app 允许用户确认 AMQ 到 REST API 示例集成可以正常工作。
要在安装 Fuse Online 前将 Fuse Online 配置为具有 ToDo 应用程序,请参阅配置 Fuse Online 的自定义资源属性描述。
先决条件
- Fuse Online 已安装并在 OCP 现场运行。
-
已安装
oc
客户端工具,并连接到安装 Fuse Online 的 OCP 集群。 - 具有集群管理权限的用户为您提供了在集群中具有访问权限的任何项目中安装 Fuse Online 的权限。
-
您有一个 红帽开发人员帐户,您知道您的用户名和密码。安装脚本提示您输入这些凭证,以便它能够针对
https://developers.redhat.com
进行身份验证。有关创建帐户的详情,请参考 访问和配置 Red Hat Registry。
流程
使用有权限安装 Fuse Online 的帐户登录 OpenShift。例如:
oc login -u developer -p developer
切换到运行 Fuse Online 的项目。例如:
oc project my-fuse-online-project
编辑
syndesis
自定义资源:调用以下命令,这通常在编辑器中打开资源:
oc edit syndesis
确保以下几行在资源中:根据需要编辑。
spec: addons: todo: enabled: true
保存资源。
保存对
syndesis
自定义资源的更改会触发syndesis-operator
来创建新的todo
pod。
后续步骤
第 4 章 在 OCP 上管理 Fuse Online
在 OpenShift Container Platform (OCP)上安装 Fuse Online 后,您可以使用 Prometheus 监控集成活动,并您可以设置定期的 Fuse 在线备份,您可以使用它来恢复 Fuse 在线环境。您可以根据需要升级 Fuse Online、卸载 Fuse Online 或删除包含 Fuse Online 的 OCP 项目。
详情请查看以下主题:
4.1. 监控 Fuse 在线集成和基础架构组件与 Prometheus
您可以使用 Prometheus 监控 Fuse 在线基础架构组件和 Fuse Online 集成。您还可以使用 Grafana 仪表板来视觉化 Prometheus 收集的指标。
红帽对 Prometheus 的支持仅限于红帽产品文档中提供的设置和配置建议。
Grafana 是社区支持的功能。红帽生产服务级别协议(SLA)不支持部署 Grafana 来监控 Red Hat Fuse 产品。
除了监控 Fuse Online 集成外,您还可以使用 Prometheus 监控以下 Fuse 在线基础架构组件公开的指标:
- Syndesis Server
-
syndesis-server
组件已被 Micrometer 检测,默认会自动公开所有 JVM Micrometer 指标。另外,dsndesis-server
会公开有关 REST API 端点的指标,如请求率、错误率和延迟。 - Syndesis Meta
-
syndesis-meta
组件已带有 Micrometer 的工具,并默认自动公开所有 JVM Micrometer 指标。它还会公开有关其 REST API 端点的指标。 - Syndesis DB
- Fuse Online Postgres 数据库的指标使用 第三方 Prometheus 导出器 导出。
- 集成
-
集成
指标在集成创建后可见,并使用官方 JMX 导出器导出,该导出默认会公开几个 JVM 指标。另外,集成指标会公开特定于 Apache Camel 的指标,如消息速率和错误率。
先决条件
- Fuse Online 已安装并在 OCP 现场运行。
-
已安装
oc
客户端工具,并连接到安装 Fuse Online 的 OCP 集群。 -
有对 Fuse Online 命名空间的
admin
访问权限。 -
您有一个 红帽开发人员帐户,您知道您的用户名和密码。安装脚本提示您输入这些凭证,以便它能够针对
https://developers.redhat.com
进行身份验证。有关创建帐户的详情,请参考 访问和配置 Red Hat Registry。 -
具有集群管理员访问权限的个人已
按照以下
安装说明 部署了 Prometheus 和带有 Application Monitoring operator (特别是标签v1.1.6
)的 Grafana。
流程
在 Fuse Online 命名空间中,使用以下命令设置
monitoring-key=middleware
标签:oc label namespace <fuse-online-namespace> monitoring-key=middleware
验证 Fuse Online 安装是否将应用程序监控配置资源添加到 OpenShift 集群中:
-
在 OpenShift Web 控制台中,前往
application-monitoring
项目,然后打开prometheus-route
URL。 在 Prometheus 控制台中,进入 Status → Targets 页面。
如果列出了
Syndesis
目标,则 Fuse Online 被配置为监控,您可以跳至第 4 步。如果没有列出
Syndesis
目标,请继续步骤 3。
-
在 OpenShift Web 控制台中,前往
要公开 Fuse Online 以供在一个单独的 OpenShift 项目中安装的 Prometheus 实例进行监控,请在
syndesis
自定义资源中启用ops
附加组件:进入 Fuse Online 命名空间:
OpenShift 4.x OpenShift 3.11 -
在 OpenShift Web 控制台中,前往 Fuse Online (
syndesis
)项目。 - 选择 Catalog > Installed Operators,然后点 Fuse Online Operator。
- 点 Syndesis CRD,然后点 app。
-
点 Yaml 在编辑器中打开
yaml
文件。
- 选择 Resources > Other Resources。
- 从下拉菜单中,选择 Syndesis 资源类型。
-
对于 app 资源,点 Actions,然后选择 Edit YAML 以在编辑器中打开
yaml
文件。
-
在 OpenShift Web 控制台中,前往 Fuse Online (
编辑
yaml
文件,通过添加以下几行将Syndesis.Spec.Addons.Ops.Enable
值设置为 true :spec: addons: ops: enabled: true
- 保存该文件。
等待 pod 重启。
注意运行安装命令后,Fuse Online 基础架构资源就无法立即可用。您可能需要等待,然后才能在 Prometheus Targets 页面中看到 Fuse Online (Syndesis)目标。
访问 Prometheus:
- 在 OpenShift 控制台中,为安装应用监控 Operator 的项目打开路由列表。
- 在 prometheus-route 条目旁边,点主机名 URL 打开 Prometheus 控制台。
- 要查看为 Fuse Online infrastructure 组件配置的警报规则的列表,请单击 Alerts 菜单项。
访问 Grafana 仪表板:
- 在 OpenShift 控制台中,为安装应用监控 Operator 的项目打开路由列表。
- 在 grafana-route 条目旁边,点主机名 URL 打开 Grafana 控制台。
在 Grafana 控制台的顶部,点仪表板选择器。
- 对于 Fuse Online integrations,请选择 Integration - Camel。此仪表板显示 Apache Camel 集成应用程序公开的标准指标。
对于 Fuse Online Infrastructure 组件,请选择以下基础架构仪表板之一:
- 基础架构 - DB
- 显示与 Fuse Online Postgres 实例相关的指标。
- 基础架构 - JVM
-
显示
syndesis-meta
或syndesis-server
应用有关运行 JVM 的指标。从仪表板顶部的 Application 下拉列表中选择要监控的应用程序。 - 基础架构 - REST API
-
显示与 Fuse Online 基础架构 API 端点相关的指标,如
请求
。从仪表板顶部的 Application 下拉列表中选择要监控的应用程序。吞吐量和延迟
访问 Prometheus Alertmanager:
- 在 OpenShift 控制台中,为安装应用监控 Operator 的项目打开路由列表。
在 alertmanager-route 条目旁边,点主机名 URL 打开 Alertmanager 控制台。
如果 Fuse Online 基础架构处于健康状态,则默认视图为空。
如果任何基础架构组件不健康,则会列出任何触发的警报,以及静默它们的选项。
其他资源
有关 Prometheus 入门的详情,请访问: https://prometheus.io/docs/prometheus/latest/getting_started/
4.2. Fuse Online Metering 标签
您可以使用 OpenShift Metering operator 分析已安装的 Fuse Online operator 和组件,以确定您是否符合红帽订阅。如需有关 Metering 的更多信息,请参阅 OpenShift 文档。
下表列出了 Fuse 在线基础架构组件和集成的计量标签。
标签 | 可能的值 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
例子
基础架构示例(基础架构组件是 syndesis-db)
com.company: Red_Hat rht.prod_name: Red_Hat_Integration rht.prod_ver: 7.8 rht.comp: Fuse rht.comp_ver: 7.8 rht.subcomp: syndesis-db rht.subcomp_t: infrastructure
应用程序示例(集成部署名称为 mytestapp)
com.company: Red_Hat rht.prod_name: Red_Hat_Integration rht.prod_ver: 7.8 rht.comp: Fuse rht.comp_ver: 7.8 rht.subcomp: i-mytestapp rht.subcomp_t: application
4.3. 备份 Fuse 在线环境
您可以将 Fuse Online 配置为定期备份:
- Fuse 在线存储连接和集成的内部 PostgreSQL 数据库。
-
syndesis-operator
创建且运行 Fuse Online 的 OpenShift 资源。这包括但不限于配置映射、部署配置和服务帐户。
在安装 Fuse Online 之前,您可以为 Fuse Online 环境配置备份,或者您可以更改 Fuse 在线环境的配置以启用备份。
当 Fuse Online 配置为执行备份时,Fuse Online zips 数据会放入一个文件中,并将该文件上传到您指定的 Amazon S3 存储桶。您可以将备份应用到新的 Fuse 在线环境(没有定义连接或集成),以恢复备份的 Fuse Online 环境。
先决条件
- OCP 在现场运行。
-
oc
客户端工具已安装并连接到运行 Fuse Online 的 OCP 集群。 - 具有集群管理权限的用户为您提供了在集群中具有访问权限的任何项目中安装 Fuse Online 的权限。
- 您有一个 AWS 访问密钥和 AWS secret 密钥。有关获取这些凭证的详情,请参阅 AWS 文档 管理 IAM 用户的访问密钥。
- 您知道您要上传到的 S3 存储桶的 AWS 区域。
- 您知道要上传备份的 S3 存储桶的名称。
流程
使用有权限安装 Fuse Online 的帐户登录 OpenShift。例如:
oc login -u developer -p developer
切换到正在运行您要为其配置备份的 Fuse Online 环境的 OpenShift 项目。例如:
oc project my-fuse-online-project
创建 OpenShift 机密。在命令行中:
-
指定
syndesis-backup-s3
,如以下命令格式所示。 将 AWS 变量替换为 AWS 访问密钥、AWS secret 密钥、存储桶所在的 AWS 区域,以及存储桶的名称。
使用以下命令格式创建 secret:
oc create secret generic syndesis-backup-s3 \ --from-literal=secret-key-id="my-aws-access-key" \ --from-literal=secret-access-key="my-aws-secret-key" \ --from-literal=region="aws-region" \ --from-literal=bucket-name="aws-bucket-name"
备份作业运行时必须存在此 secret。
-
指定
如果还没有安装 Fuse Online,您必须编辑
default-cr.yml
文件以启用备份。请参阅安装 Fuse Online 前编辑syndesis
自定义资源。安装 Fuse Online 后,将根据您在自定义资源中指定的时间表备份作业。如果 Fuse Online 正在运行,您必须编辑
syndesis
自定义资源:调用以下命令,它会在编辑器中打开
syndesis
自定义资源:oc edit syndesis
在
spec:
下添加以下内容:backup: schedule: my-backup-interval
将
my-backup-interval
替换为备份之间所需的持续时间。要确定如何指定备份之间的间隔,请参阅以下资源:- Cron 预定义的调度
不要在间隔前面指定
@
符号。例如,要配置每日备份,自定义资源将包含如下内容:apiVersion: syndesis.io/v1beta1 kind: Syndesis metadata: name: app spec: backup: schedule: daily
保存该文件。
这会向
syndesis-operator
添加一个备份作业。
结果
如果 Fuse Online 已在运行,则现在会根据您定义的时间表有一个 Fuse Online 备份作业。
后续步骤
如果需要安装 Fuse Online,请编辑 default-cr.yml
文件以启用任何其他所需功能或设置任何其他参数。当 default-cr.yml
文件具有您想要的所有设置时,请在创建 OpenShift secret 时指定的项目中安装 Fuse Online。
4.4. 恢复 Fuse 在线环境
在新的 Fuse Online 环境中,您尚未在其中创建任何连接或集成,您可以恢复 Fuse 在线环境的备份。恢复 Fuse 在线环境后,您必须编辑恢复的连接以更新其密码。然后,您应该能够发布恢复的集成。
先决条件
- OCP 在现场运行。
-
oc
客户端工具已安装并连接到要恢复 Fuse 在线环境的 OCP 集群。 - 具有集群管理权限的用户为您提供了在集群中具有访问权限的任何项目中安装 Fuse Online 的权限。
- 有一个 Fuse 在线环境,配置为定期备份数据并将数据上传到 Amazon S3。
- Fuse Online 发行号(如 7.6)与备份的 Fuse Online 环境以及您要恢复备份的 Fuse Online 环境相同。
- 有访问包含 Fuse Online 备份的 AWS 存储桶的权限。
- 要恢复备份的 Fuse Online 环境是新的 Fuse 在线安装。换句话说,没有您定义的连接或集成。如果要在具有连接和集成的 Fuse 在线环境中恢复 Fuse Online,则必须卸载 Fuse Online 环境并安装新的 Fuse 在线环境。
流程
- 从 Amazon S3 下载所需的备份文件。有关执行此操作的详细信息,请参阅 AWS 文档中的 从 S3 Bucket 下载对象?
提取 zip 文件的内容。例如,以下命令可将
7.6-2020-03-15-23:30:00.zip
文件解压缩,并将内容复制到/tmp/fuse-online-backup
文件夹中:unzip 7.6-2020-03-15-23:30:00.zip -d /tmp/fuse-online-backup
解码 Fuse Online 数据库,例如:
base64 -d /tmp/fuse-online-backup/syndesis-db.dump > /tmp/fuse-online-backup/syndesis-db
切换到运行新 Fuse Online 环境的 OpenShift 项目。例如,如果新的 Fuse Online 环境位于
my-fuse-online-project
中,则您将执行以下命令:oc project my-fuse-online-project
此流程的其余部分假定您已切换到包含新 Fuse Online 环境的项目。
获取数据库 pod 的名称。
如果恢复的 Fuse Online 环境使用提供的内部 PostgreSQL 数据库,请调用以下命令来获取数据库 pod 的名称:
oc get pods -l deploymentconfig=syndesis-db -o jsonpath='{.items[*].metadata.name}'
如果恢复的 Fuse Online 环境使用外部数据库,则假设您了解如何获取该数据库的 pod 的名称。
在剩余的命令中,如果您看到
DATABASE_POD_NAME
,请为恢复的 Fuse 在线环境插入数据库 pod 的名称。缩减正在以任何方式访问数据库的组件。
缩减
syndesis-operator
以便可以缩减其他组件:oc scale dc syndesis-operator --replicas 0
缩减
syndesis-server
和syndesis-meta
组件:oc scale dc syndesis-server --replicas 0
oc scale dc syndesis-meta --replicas 0
将数据库备份文件发送到 Fuse Online 数据库 pod:
oc cp /tmp/fuse-online-backup/syndesis-db DATABASE_POD_NAME:/tmp/syndesis-db
在 Fuse Online 数据库 pod 中打开远程 shell 会话:
oc rsh DATABASE_POD_NAME
调用以下命令以恢复 Fuse Online 数据库:
如果
psql
命令提示输入数据库密码,并且恢复的 Fuse Online 环境使用提供的内部 PostgreSQL 数据库,您可以在syndesis-db
部署配置中找到密码。如果恢复的 Fuse Online 环境使用外部数据库,则假定您知道密码。
cd /tmp psql -c 'DROP database if exists syndesis_restore' psql -c 'CREATE database syndesis_restore' pg_restore -v -d syndesis_restore /tmp/syndesis-db psql -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'syndesis'" psql -c 'DROP database if exists syndesis' psql -c 'ALTER database syndesis_restore rename to syndesis'
Fuse Online 现在应恢复。您可以结束 RSH 会话:
exit
扩展 Fuse 在线组件:
oc scale dc syndesis-operator --replicas 1
将
syndesis-operator
扩展为1
应调出缩减的其他 pod。但是,如果没有发生这种情况,您可以手动扩展它们:oc scale dc syndesis-server --replicas 1
oc scale dc syndesis-meta --replicas 1
服务器会尝试启动每个恢复的集成,但需要先更新连接。因此,请确保恢复的集成没有运行:
获取 Fuse Online 控制台路由:
echo "https://$(oc get route/syndesis -o jsonpath='{.spec.host}' )"
- 使用有权安装 Fuse Online 的 OpenShift 用户帐户登录到 Fuse Online 控制台。
- 显示集成列表,并确保所有集成都已停止。如果集成正在运行,请停止它。
对于具有密码的每个连接,您需要更新连接,使其具有此 Fuse 在线环境的正确密码。以下步骤演示了如何为提供的 PostgresDB 连接执行此操作。
-
在运行此恢复的 Fuse Online 环境的 OpenShift 控制台中,检索 PostgresDB 连接的密码。在
syndesis-db
部署中,密码位于环境变量中。 - 在 Fuse Online 控制台中显示连接。
- 编辑 PostgresDB 连接。
- 在 PostgresDB 连接的连接详情中,将检索到的密码粘贴到 Password 字段中。
-
在运行此恢复的 Fuse Online 环境的 OpenShift 控制台中,检索 PostgresDB 连接的密码。在
对于每个集成,确认没有 所需的配置。如果存在,编辑集成来解决问题。当集成中的所有步骤都正确时,发布集成。
如果 Fuse Online 在构建步骤后仍然保持集成回 Stopped 状态,请删除部署,请确保不需要配置,并尝试再次发布集成。
如果您在日志中看到以下信息,您可以安全地忽略以下信息:
Error performing GET request to https://syndesis-my-fuse-online-project.my-cluster-url/api/v1/metrics/integrations
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 依赖项。
4.6. 从 OCP 项目卸载 Fuse Online
您可以从 OCP 项目卸载 Fuse Online,而无需删除该项目中的任何其他项目。卸载 Fuse Online 后,继续运行的集成会继续运行,但您无法编辑或重新发布它们。
前提条件
- 您有一个安装了 Fuse Online 的 OCP 项目。
- 您导出了您可能要在安装 Fuse Online 的其他 OpenShift 项目中使用的任何集成。如有必要,请参阅 导出集成。
流程
使用有权限安装 Fuse Online 的帐户登录 OpenShift。例如:
oc login -u developer -p developer
切换到运行您要卸载的 Fuse Online 环境的 OpenShift 项目。例如:
oc project my-fuse-online-project
删除 Fuse 在线基础架构:
oc delete syndesis app
删除
syndesis-operator DeploymentConfig
和ImageStream
资源:oc delete dc/syndesis-operator
oc delete is/syndesis-operator
4.7. 删除包含 Fuse Online 的 OCP 项目
删除安装 Fuse Online 的 OpenShift 项目会删除项目中的所有内容。这包括已定义的所有集成以及运行的所有集成。
先决条件
- 您有一个安装了 Fuse Online 的 OCP 项目。
- 您导出了您可能要在安装 Fuse Online 的其他 OpenShift 项目中使用的任何集成。如有必要,请参阅 导出集成。
流程
调用 oc delete project
命令。例如,要删除名称为 fuse-online-project
的 OpenShift 项目,请输入以下命令:
oc delete project fuse-online-project
第 5 章 如何调用 Fuse Online 公共 REST API 端点
当您在 OCP 上运行 Fuse Online 时,每个 Fuse Online 环境都可以公开公共 REST API 端点。外部持续集成/持续交付(CI/CD)工具可调用这些端点来处理 Fuse 在线环境中的资源。
在每个 Fuse Online 环境中,OpenShift 管理员必须公开 Fuse Online 公共 REST API 端点,然后才能调用这些端点。调用 API 端点的命令指定端点运行、机密令牌和授权令牌的 Fuse Online 环境的 URL。
详情请查看以下主题:
5.1. 公开 Fuse Online 公共 REST API,供外部工具使用
当您在 OCP 现场运行 Fuse Online 时,您可能需要使用外部工具将 Fuse Online 集成从一个 Fuse Online 环境复制到另一个 Fuse 在线环境。外部 CI/CD 工具可能是 Jenkins 任务、Ansible playbook、基于 cron
的 shell 脚本或其他内容。例如,Ansible playbook 可以从 Fuse Online 开发环境导出集成,并将其导入到 Fuse 在线测试环境中。
要启用此功能,您必须为每个 Fuse Online 环境公开 Fuse Online 公共 REST API 端点。换句话说,您必须在安装 Fuse Online 的每个 OpenShift 项目中重复该过程。
先决条件
- 您有一个安装了 Fuse Online 的 OCP 项目。
-
已安装
oc
客户端工具,并连接到安装 Fuse Online 的 OCP 集群。 - 您可以使用外部 CI/CD 工具,并希望将其从一个 Fuse Online 环境复制到另一个环境。
-
执行
syndesis-operator grant
命令需要集群管理特权。具有 OpenShift 项目的管理特权但集群管理特权的用户可以执行其他命令。
流程
使用具有集群管理特权的帐户登录 OpenShift。例如:
oc login -u admin -p admin
虽然只有
syndesis-operator grant
命令需要集群管理特权,但这个过程假设集群管理员执行所有步骤。切换到运行 Fuse Online 的 OpenShift 项目。您只在此项目中公开公共 API。例如:
oc project fuse-online-north
将角色授予
syndesis-public-oauthproxy
服务帐户。您的 OpenShift 项目使用此服务帐户来运行 OAuth 代理服务。指定具有集群管理特权的用户帐户。例如:syndesis-operator 授权 --user developer
此命令创建集群角色和集群角色绑定到
syndesis-public-oauthproxy
服务帐户。ClusterRoleBinding 指定您要公开 API 的 OpenShift 项目的名称,本例中为fuse-online-north
:-
ClusterRole:
syndesis-auth-delegator
-
ClusterRoleBinding:
syndesis-fuse-online-north-auth-delegator
-
ClusterRole:
创建客户端服务帐户,并授予其访问 Fuse Online 公共 API 的权限:
使用您选择的名称创建一个 OpenShift 服务帐户。例如,以下命令创建
cicd-client
服务帐户:oc create serviceaccount cicd-client
调用公共 API 端点的命令使用此帐户来访问公共 API。另外,您需要此服务帐户获取 secret 令牌,该令牌必须在调用 API 端点时指定。这在 获取用于调用 REST API 端点的 secret 令牌 中进行了描述。
授予客户端服务帐户访问 Fuse Online 公共 API 的权限。如果
fuse-online-north
是安装 Fuse Online 的 OpenShift 项目的名称,如果cicd-client
是您为访问 API 服务创建的服务帐户的名称,则您将执行以下命令:oc policy add-role-to-user edit system:serviceaccount:fuse-online-north:cicd-client`
编辑
syndesis
自定义资源:调用以下命令,这通常在编辑器中打开资源:
oc edit syndesis
编辑资源,使其启用公共 API,并将 Fuse Online 环境的公共地址指定为
routeHostname
设置。(如果编辑了用于安装 Fuse Online 的default-cr.yml
文件,启用公共 API 并为端点指定路由主机名,则不需要编辑资源。)集群设置决定了您需要指定的公共地址。详情请参阅 OpenShift 文档中的路由。在以下示例中,路由主机名对 minishift 集群有效。
spec: addons: publicApi: enabled: true routeHostname: public-syndesis.192.168.64.63.nip.io
保存(或关闭)资源。
保存
syndesis
自定义资源会触发syndesis-operator
(负责安装 Fuse Online)来部署公共 API OAuth 代理服务。如果您不需要编辑
syndesis
自定义资源,则已部署公共 API OAuth 代理服务。这可能是因为启用了publicApi
,并在用于安装 Fuse Online 的default-cr.yml
文件中指定的路由。
结果
在 OpenShift 中,您现在可以看到:
-
syndesis-public-oauthproxy
部署配置的 pod。 -
一个
syndesis-public-oauthproxy
服务。 -
一个
syndesis-public-api
路由。
在您执行此流程的 OpenShift 项目中,外部 CI/CD 工具可以使用 Fuse Online public REST API 端点导出或导入 Fuse Online 集成。
后续步骤
- 用于导出到其他 Fuse 在线环境的标记集成。您可以在 Fuse Online 控制台中 标记集成,或者调用 Fuse Online 公共 REST API 端点来标记 集成。
-
若要确认公共 API 端点可用,可调用返回环境名称的
curl
命令。请参阅 Endpoint 以获取环境标签列表。 - 配置外部工具,以调用 Fuse Online public REST API 端点。
5.2. Fuse Online 公共 REST API 端点的基本 URL 描述
Fuse Online 公共 REST API 端点的基本 URL 如下:
https://public-syndesis.192.168.64.42.nip.io/api/v1/public
对于每个 Fuse Online 环境,基本 URL 的第一个部分有所不同。当您创建运行 Fuse Online 公共 OAuth 代理的 OpenShift 应用程序时,允许访问公共 REST API 端点,您可以指定 Fuse 在线环境的公共地址。此地址是基础 URL 的第一个部分,用于调用在该 Fuse 在线环境中运行的端点。例如:
https://public-syndesis.192.168.64.42.nip.io
所有 Fuse Online 环境的基本 URL 的第二部分相同:
/api/v1/public
Fuse Online 公共 REST API 提供在三个资源上运行的端点:
-
/integrations
是 Fuse Online 环境中在基本 URL 中标识的集成。 -
/connections
是 Fuse Online 环境中在基本 URL 中标识的连接。 -
/environments
是 Fuse Online 环境中在基本 URL 中标识的环境标签集合。
5.3. 获取用于调用公共 REST API 端点的 secret 令牌
调用 Fuse Online public REST API 端点的命令必须指定 secret 令牌。此令牌适用于您在给定 Fuse 在线环境中公开 Fuse Online 公共 REST API 时创建的服务帐户。
先决条件
- 您在 OCP 现场运行 Fuse Online。
- 您公开了由 Fuse Online 环境提供的公共 REST API,在其中调用端点。
流程
获取公开此 Fuse 在线环境的公共 REST API 时创建的服务帐户的机密令牌名称。例如,如果
cicd-client
是服务帐户的名称,您将调用以下命令:oc describe serviceaccount cicd-client
这将显示有关
cicd-client
服务帐户的信息列表,其中包括其两个令牌的名称,如下所示:Tokens: cicd-client-token-gxb25 cicd-client-token-gxdnv
显示其中一个令牌的内容。例如:
oc describe secret cicd-client-token-gxb25
这将显示信息列表,包括显示
token:
后跟较长的随机字符的Data
部分。这是服务帐户的两个 secret 令牌之一。- 复制 secret 令牌,将其粘贴到文件中,并保存它。
结果
在 curl
命令中,secret 令牌规格类似如下:
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJzeW5kZXNpcyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJzeW5kZXNpcy1jZC1jbGllbnQtdG9rZW4tMnZjNmwiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoic3luZGVzaXMtY2QtY2xpZW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNjUxMjYxNGMtMmYwMS0xMWU5LTk3OWEtNDI1YWNlMzY3MTcyIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OnN5bmRlc2lzOnN5bmRlc2lzLWNkLWNsaWVudCJ9.uKsri0JSKJDbgHoQwAhBJSNuWKwJgjegf2QlrCkhxVssSK1zIMZQaF9P5a4R7ZcWRnrZ_345UTqxYVeRlfHWVH0PqBkD-n7PAS9dcKJIFdS1jUHOmL1FTGgc3YW-bz1SlWT93tvK1EhorZ4_-EBfXhSAP4Uumi5qAg3_QUTMDstq233NSwBKYtFOw3Pp1ys3p3y0hcaiLMimeCH60vR4iWvptqqzc5QDigHiPySZNWxs_5awZlwdoIDvR-nSj690aC-49UKFgyEEdzdFU4bI2W4hOyDyhN9fVaIAZQKeJUrJBU-lnFTHI_NAd2OwzOEBpWZuj31Za5w9fU4kf4UDGA'
后续步骤
将保存中的令牌复制到在给定 Fuse Online 环境中调用公共 REST API 端点的命令中。
5.4. 如何查找集成 ID
在调用一个只在特定集成中运行的 Fuse Online public REST API 端点的命令中,您必须指定您希望端点操作的集成的 ID。指定以下之一:
集成名称
您必须像 Fuse Online 控制台中显示一样指定它,例如
timer-to-log
。如果集成名称有任何空格或特殊字符,则必须指定 HTML 转义字符。内部集成 ID
当您查看集成概述时,此 ID 位于 Fuse Online 控制台 URL 中。要查看集成概述,请在左侧导航面板中单击 Integrations。在集成列表中,单击您需要 ID 的集成的条目。
在浏览器中看到集成摘要后,您会看到类似 URL 的末尾的内容:
/integrations/i-Lauq5ShznJ4LcuWwiwcz
。此集成的 ID 是i-Lauq5ShznJ4LcuWwiwcz
。
5.5. 指定 curl
命令用来调用 Fuse Online 公共端点的格式
调用 Fuse Online public REST API 端点的 curl
命令具有以下格式:
curl [options] \ -H "Content-Type: <media-type>" \ -H "SYNDESIS-XSRF-TOKEN: awesome" \ -H `Authorization: Bearer <token>` \ <base-url><endpoint> \ [--request <HTTP-method>] \ [-d <data>] \ [-o <filename>]
选项 | 描述 |
---|---|
|
指定您选择的 |
|
对于导出和导入端点,请指定 |
| 为公开公共 REST API 时创建的 OpenShift 服务帐户指定 secret 令牌。 |
| 指定具有您要端点操作的集成、连接或环境标签的 Fuse Online 环境的基本 URL。 |
| 指定要调用的端点。 |
|
(可选)指定 HTTP 方法,如- |
|
(可选)根据被调用的端点,指定端点所需的参数。例如,要更改集成的环境标签以测试,您需要指定 |
|
另外,如果您需要指定包含输出的文件的名称,请使用文件名指定 |
以下 curl
命令调用 Fuse Online 公共 API 端点,标记您指定的一个或多个环境的集成:
curl -v -k -L -H "Content-Type: application/json" -H "SYNDESIS-XSRF-TOKEN: awesome" -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJzeW5kZXNpcyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJzeW5kZXNpcy1jZC1jbGllbnQtdG9rZW4tMnZjNmwiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoic3luZGVzaXMtY2QtY2xpZW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNjUxMjYxNGMtMmYwMS0xMWU5LTk3OWEtNDI1YWNlMzY3MTcyIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OnN5bmRlc2lzOnN5bmRlc2lzLWNkLWNsaWVudCJ9.uKsri0JSKJDbgHoQwAhBJSNuWKwJgjegf2QlrCkhxVssSK1zIMZQaF9P5a4R7ZcWRnrZ_345UTqxYVeRlfHWVH0PqBkD-n7PAS9dcKJIFdS1jUHOmL1FTGgc3YW-bz1SlWT93tvK1EhorZ4_-EBfXhSAP4Uumi5qAg3_QUTMDstq233NSwBKYtFOw3Pp1ys3p3y0hcaiLMimeCH60vR4iWvptqqzc5QDigHiPySZNWxs_5awZlwdoIDvR-nSj690aC-49UKFgyEEdzdFU4bI2W4hOyDyhN9fVaIAZQKeJUrJBU-lnFTHI_NAd2OwzOEBpWZuj31Za5w9fU4kf4UDGA' https://public-syndesis.192.168.64.42.nip.io/api/v1/public/integrations/timer-to-log/tags -d '["test","staging"]' --request PUT
在 curl
命令示例中:
- 命令末尾的 URL 标识您要调用的端点的 Fuse Online 环境。
-
timer-to-log
表示您要为指定环境标记timer-to-log
集成。 -
测试和临时
规格标记这些环境的timer-to-log
集成。
第 6 章 使用外部工具为 CI/CD 导出/导入 Fuse 在线集成
当您在 OCP 现场运行 Fuse Online 时,您可能要对某些集成进行持续集成/持续部署(CI/CD)管道。实现这需要完成这些任务:
- 在 Fuse Online 控制台中,标记 CI/CD 管道的集成。
- 在 OpenShift 中,公开 Fuse Online 公共 API。
- 使用外部工具调用 Fuse Online 公共 API 端点来导出和导入集成。
详情请查看以下主题:
6.1. 关于为 CI/CD 标记集成
当您在 OCP 现场运行 Fuse Online 时,要识别管道的集成,请标记您指定的 CI/CD 环境集成。这会将时间戳的标签应用到集成。后端 CI/CD Fuse 在线公共 API 使用标签及其时间戳来过滤集成,以查找管道操作所需的集成。
例如,假设您在 Fuse Online 中标记了 test1
环境的集成。然后,您可以调用 Fuse Online 公共 API 导出端点,以导出具有 test1
环境标签的集成。端点软件包 test1
集成到导出文件中,并返回该文件。要将 test1
集成复制到 Fuse Online 测试环境,您需要调用公共 API 导入端点并提供包含导出的 test1
集成的文件。
现在,假设您迭代更新并发布之前标记为 test1
环境的集成。现在,您有一个新的集成版本,您想要将更新版本导出到 test1
环境。您必须再次标记集成,即使它已标记为 test1
环境。标记集成会再次更新 test1
环境标签的时间戳。这表示集成已更新的外部工具,并已准备好导出。
要再次标记集成(即,要刷新已分配给集成的环境标签的时间戳),启动 Marking integrations for CI/CD 的步骤。在 CI/CD 对话框中,应已选中所需环境的 保存。
6.2. 标记 CI/CD 的集成
当您在 OCP 现场运行 Fuse Online 时,要识别管道的集成,请标记您指定的 CI/CD 环境集成。这会对集成应用标签。
前提条件
您有一个安装了 Fuse Online 的 OCP 项目。
流程
- 在左侧的 Fuse Online 导航面板中,单击 Integrations。
- 在集成列表中,在您要标记的集成条目右侧,点 显示弹出窗口并点 Manage CI/CD。
在出现的对话框中,执行以下操作的一个或多个:
- 如果要标记此集成的环境已存在,请选择该环境左侧的复选框。
- 如果要标记此集成的环境已被选择,请保留它。
- 如果您需要为环境创建标签,请单击 Manage CI/CD,它会显示一个用于创建新环境标签的对话框。创建您需要的标签,然后返回到此流程来标记集成。
Fuse Online 将所选环境标签应用到集成。您可以将任意数量的环境标签应用到集成。
- 点击 Save。
结果
Fuse Online 为所选环境中的发行版本标记集成。后端 API 可以过滤集成来查找具有 test1 标签的集成。
后续步骤
您必须公开 Fuse Online 公共 API 端点,然后管道可以操作标记为特定环境的集成。请参阅 公开 Fuse Online 公共 REST API 供外部工具使用。
6.3. 管理 CI/CD 的环境标签
在 Fuse Online 控制台中,您可以创建、更改或删除 CI/CD 环境标签。CI/CD 环境标签是您可以应用到集成的标签,以识别 CI/CD 管道。
先决条件
- Fuse Online 在 OCP 现场运行。
- 外部工具使用 Fuse Online 环境标签来识别 CI/CD 管道的集成。
流程
- 在 Fuse Online 中,在左侧导航面板中,单击 Integrations。
- 在右上角,单击 Manage CI/CD。
在 Manage CI/CD 页面中:
创建 CI/CD 环境标签:
- 单击 添加新。
- 在 Add Tag Name 对话框中,在 Tag Name 输入新 environment 标签的名称,如 test1。
- 点击 Save。在 Manage CI/CD 页面中,您刚刚添加的环境标签有一个新条目。
更改 CI/CD 环境标签:
- 在 CI/CD 环境标签列表中,在您要更改的标签条目中,单击 Edit。
- 在 Edit Tag 对话框中,根据需要更改名称。
- 点 Save 查看环境标签列表中的更新的名称。Fuse Online 将更新的名称应用到已使用您更改的环境标签标记的每个集成。
删除 CI/CD 环境标签:
- 在 CI/CD 环境标签列表中,在您要删除的标签条目中,单击 Remove。
- 在确认对话框中,单击 Yes。Fuse Online 删除 environment 标签,并从标记了任何集成中删除已删除的环境标签。
后续步骤
标记与新环境标签的集成。请参阅 为 CI/CD 标记集成。
6.4. 调用 Fuse Online 公共 API 导出端点
在使用外部工具将 Fuse Online 集成从一个 Fuse Online 环境复制到另一个环境之前,必须完成以下任务:
在 Fuse Online 中,您要导出 CI/CD 管道的集成必须标记为特定环境。请参阅 为 CI/CD 标记集成。
此要求例外情况。当您希望在一个导出操作中导出 Fuse Online 环境的所有集成时,无论集成是否已为特定环境标记无关。
- 您公开 Fuse Online 公共 API。请参阅 公开外部工具的 Fuse Online 公共 API 端点。
用于导出特定环境集成的端点
要导出标记为特定环境的集成,Fuse Online 提供了以下 GET
方法端点:
/public/integrations/{env}/export.zip
将 {env}
替换为您创建的 CI/CD 环境标签。当集成标记为特定环境时,Fuse Online 会维护一个指示何时标记的时间戳。默认行为是,只有在标签尚未导出时端点才会导出集成。例如,要导出已标记为 test1
环境的集成,端点为:
/public/integrations/test1/export.zip
此端点导出具有 test1
环境标签且满足以下条件之一的集成:
-
自上次导出的
test1
环境后,集成已被标记为 test1 环境。 -
该集成已标记为
test1
环境,并且从未导出。
端点在 export.zip
文件中打包集成并返回该文件。
如果没有为指定环境标记的集成,自上次导出集成后,端点会返回 HTTP 204
响应,以指示没有返回任何内容。
用于导出为指定环境标记的所有集成的端点
您可以调用导出端点,以便在使用您指定的环境标签标记的 Fuse Online 环境中导出所有集成。端点导出集成自上次导出集成以来,是否标记为指定环境。这样便可轻松复制在另一个 Fuse 在线环境中具有特定标签的所有集成。要做到这一点:
- 您必须已创建了 environment 标签。请参阅 为 CI/CD 标记集成。
-
将
ignoreTimestamp=true
选项添加到导出端点的调用中。
例如:
/public/integrations/test1/export.zip?ignoreTimestamp=true -o export.zip
用于导出所有集成的端点
您可以调用导出端点,以便在一个 Fuse Online 环境中导出所有集成。这样便可在另一个 Fuse 在线环境中轻松复制所有集成。要做到这一点:
- 您必须已创建了 environment 标签。请参阅 为 CI/CD 标记集成。
-
将
all=true
选项添加到导出端点的调用中。
例如:
/public/integrations/{env}/export.zip?all=true
将 {env}
替换为 CI/CD 环境标签。端点将指定的 environment 标签分配给尚未为该环境标记的每个集成。
添加 all=true
选项时,还必须明确指定导出的集成被打包在 export.zip
文件中。例如:
/public/integrations/test1/export.zip?all=true -o export.zip
此调用端点:
-
标记
test1
环境的每个集成。 返回
export.zip
文件中的所有集成。如果没有指定 the
-o export.zip
选项,则端点会返回名为export.zip?all=true
的文件。
导出端点所需的自定义标头
调用导出端点的命令必须完全指定这些自定义标头,如下所示:
-
-H "Content-Type: multipart/form-data"
-H "SYNDESIS-XSRF-TOKEN: awesome"
Fuse Online 公共 API 需要此标头来验证请求。
-h 'Authorization: Bearer <token>'
在创建用于公开 Fuse Online 公共 API 的 OpenShift 服务帐户时,将 <token> 替换为复制到文件中的 secret 令牌。
导出集成的 curl
命令示例
以下是调用导出集成的 Fuse Online API 端点的 curl
命令示例:
curl -v -k -L -H "Content-Type: multipart/form-data" -H "SYNDESIS-XSRF-TOKEN: awesome" -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJzeW5kZXNpcyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJzeW5kZXNpcy1jZC1jbGllbnQtdG9rZW4tMnZjNmwiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoic3luZGVzaXMtY2QtY2xpZW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNjUxMjYxNGMtMmYwMS0xMWU5LTk3OWEtNDI1YWNlMzY3MTcyIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OnN5bmRlc2lzOnN5bmRlc2lzLWNkLWNsaWVudCJ9.uKsri0JSKJDbgHoQwAhBJSNuWKwJgjegf2QlrCkhxVssSK1zIMZQaF9P5a4R7ZcWRnrZ_345UTqxYVeRlfHWVH0PqBkD-n7PAS9dcKJIFdS1jUHOmL1FTGgc3YW-bz1SlWT93tvK1EhorZ4_-EBfXhSAP4Uumi5qAg3_QUTMDstq233NSwBKYtFOw3Pp1ys3p3y0hcaiLMimeCH60vR4iWvptqqzc5QDigHiPySZNWxs_5awZlwdoIDvR-nSj690aC-49UKFgyEEdzdFU4bI2W4hOyDyhN9fVaIAZQKeJUrJBU-lnFTHI_NAd2OwzOEBpWZuj31Za5w9fU4kf4UDGA' https://public-syndesis.192.168.64.42.nip.io/api/v1/public/integrations/dev1/export.zip
在命令中:
- 命令末尾的 URL 标识 Fuse Online 环境,以便从中导出集成。
-
dev1
环境标签的规格表示您要导出已标记为dev1
环境的集成,并且自标记后尚未导出。
6.5. 调用 Fuse Online public API 导入端点
您可以通过调用 Fuse Online public API 导出端点来获取一个或多个集成。要将导出的集成复制到另一个 Fuse Online 环境,可调用 Fuse Online public API 导入端点。
用于导入集成的端点
要导入集成,Fuse Online 提供了以下 POST
方法端点:
/public/integrations
在以下示例中,端点导入位于 export.zip
文件中的集成,并为 测试环境标记它们
:
/public/integrations -F data=@export.zip -F environment=testing --request POST
导入端点始终导入提供的集成。也就是说,即使集成自上次导入后没有改变,端点仍然会导入它。
导入端点所需的自定义标头
调用导入端点的命令必须完全指定这些自定义标头,如下所示:
-
-H "Content-Type: multipart/form-data"
-H "SYNDESIS-XSRF-TOKEN: awesome"
Fuse Online 公共 API 需要此标头来验证请求。
-h 'Authorization: Bearer <token>'
在创建用于公开 Fuse Online 公共 API 的 OpenShift 服务帐户时,将 <token> 替换为复制到文件中的 secret 令牌。
导入集成的 curl
命令示例
以下是调用 Fuse Online API 端点的 curl
命令示例,用于导入集成:
curl -v -k -L -H "Content-Type: multipart/form-data" -H "SYNDESIS-XSRF-TOKEN: awesome" -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJzeW5kZXNpcyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJzeW5kZXNpcy1jZC1jbGllbnQtdG9rZW4tMnZjNmwiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoic3luZGVzaXMtY2QtY2xpZW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNjUxMjYxNGMtMmYwMS0xMWU5LTk3OWEtNDI1YWNlMzY3MTcyIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50OnN5bmRlc2lzOnN5bmRlc2lzLWNkLWNsaWVudCJ9.uKsri0JSKJDbgHoQwAhBJSNuWKwJgjegf2QlrCkhxVssSK1zIMZQaF9P5a4R7ZcWRnrZ_345UTqxYVeRlfHWVH0PqBkD-n7PAS9dcKJIFdS1jUHOmL1FTGgc3YW-bz1SlWT93tvK1EhorZ4_-EBfXhSAP4Uumi5qAg3_QUTMDstq233NSwBKYtFOw3Pp1ys3p3y0hcaiLMimeCH60vR4iWvptqqzc5QDigHiPySZNWxs_5awZlwdoIDvR-nSj690aC-49UKFgyEEdzdFU4bI2W4hOyDyhN9fVaIAZQKeJUrJBU-lnFTHI_NAd2OwzOEBpWZuj31Za5w9fU4kf4UDGA' https://public-syndesis.192.168.64.45.nip.io/api/v1/public/integrations -F data=@export.zip -F environment=testing --request POST
在这个命令中:
- 命令末尾的 URL 标识 Fuse Online 环境,以将集成导入到其中。
-
export.zip
文件包含要导入的集成。 -
environment=
的规格会导致端点标记每个导入的测试环境集成。testing
-
此命令生成
multipart/form-data
。
第 7 章 Fuse Online public REST API 端点参考
本节提供了每个 Fuse Online 公共 REST API 端点的参考信息。如需更多信息,请参阅如何调用 Fuse Online public REST API 端点。
定义公共 REST API 端点的 OpenAPI 文档位于您的 Fuse Online 环境中,位于 https://<fuse-online-host>/api/v1/openapi.json
。但是,本文档将 tags
对象定义为具有三个标签: public-api
、extensions
和 integration-support
。将 OpenShift 公共 OAuth 代理流程用于 Fuse Online 时,只能访问 public-api
标签。您应该忽略另外两个标签。
- 第 7.1 节 “用于获取集成状态的端点”
- 第 7.2 节 “用于获取集成环境标签列表的端点”
- 第 7.3 节 “用于标记集成并保留未指定标签的端点”
- 第 7.4 节 “用于标记集成并删除未指定标签的端点”
- 第 7.5 节 “发布集成的端点”
- 第 7.6 节 “用于停止集成的端点”
- 第 7.7 节 “用于导出集成的端点”
- 第 7.8 节 “用于导入集成的端点”
- 第 7.9 节 “从特定集成中删除环境标签的端点”
- 第 7.10 节 “用于创建环境标签的端点”
- 第 7.11 节 “用于获取环境标签列表的端点”
- 第 7.12 节 “用于更改环境标签的端点”
- 第 7.13 节 “从所有集成中删除环境标签的端点”
- 第 7.14 节 “用于更改连接属性的端点”
7.1. 用于获取集成状态的端点
此端点返回指定集成的状态。状态为 Running,Stopped,Pending, 或 Error。
方法和端点
GET
/public/integrations/{id}/state
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的机密令牌。请参阅 获取机密令牌。 |
路径参数 | ||
| string | 所需的 path 参数。要获取状态的集成名称或内部 ID。请参阅 如何查找集成 ID。 |
请求示例
在以下示例中,端点返回 timer-to-log
集成的状态:
/public/integrations/timer-to-log/state
生成
application/json
响应示例
{"CurrentState":"Unpublished","stateDetails":{"id":"i-Lc0JLc0JLrsUFtBJfR_ylfEz:5","integrationId":"i-Lc0JLrsUFtBJfR_ylfEz","deploymentVersion":5,"detailedState":{"value":"BUILDING","currentStep":2, "totalSteps":4},"namespace":"syndesis","podName":"i-timer-to-log-5-build","linkType":"LOGS"}}'
7.2. 用于获取集成环境标签列表的端点
此端点返回已应用到指定集成的环境标签(标签)。
方法和端点
GET
/public/integrations/{id}/tags
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的机密令牌。请参阅 获取机密令牌。 |
路径参数 | ||
| string | 所需的 path 参数。您要获取的环境标签的集成的名称或内部 ID。如何查找集成 ID。 |
请求示例
在以下示例中,端点返回 timer-to-log
集成的环境标签:
/public/integrations/timer-to-log/tags
生成
application/json
响应示例
{"test":{"name":"test","releaseTag":"i-Lc5WI16UFtBJfR_ylggz","lastTaggedAt":1554887553159,"lastExportedAt":1554887330152,"lastImportedAt":1554888047271},"staging":"releaseTag":"i-Lc5WI16UFtBJfRy_zgfgfTag}}E88047271},"staging":"
7.3. 用于标记集成并保留未指定标签的端点
此端点使用 PATCH
方法标记指定环境的集成。如果集成已标记为指定环境,端点会更新该环境标签的时间戳。如果集成之前标记为未在新请求中指定的环境,端点会离开该标签,且不会更新其时间戳。
此 PATCH
端点是 CI/CD 工具的方便方法,因为它添加了标签,而无需删除任何其他现有标签。这与 PUT
端点相反,用于标记指定环境的集成,并删除请求中没有指定的环境的任何标签。
方法和端点
PATCH
/public/integrations/{id}/tags
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的机密令牌。请参阅 获取机密令牌。 |
路径参数 | ||
| string | 必需。您要标记指定环境的集成的名称或内部 ID。请参阅 如何查找集成 ID。 |
其他参数 | ||
|
|
指定 |
| string | 必需。指定您要添加到指定集成中的一个或多个以逗号分隔的环境标签。您必须已创建了 environment 标签,端点无法创建标签。请参阅 为 CI/CD 标记集成。 |
请求示例
在以下示例中,端点为 test2
和 test3
环境标记 timer-to-log
集成:
public/integrations/timer-to-log/tags --request PATCH -d '["test2","test3"]'
生成
application/json
响应示例
{"test2":{"name":"test2","releaseTag":"i-LcXydouUFtBJfR_ylgrz","lastTaggedAt":1555365010746},"test3":{"name":"test3","releaseTag":"test3","releaseTag":"i-LcXydouUFtBJfR_ylgsz","lastTaggedAt":1555365010746}, "test":{"name":"test","releaseTag":"i-Lc5WI16UFtBJfR_ylggz","lastTaggedAt":1554887553159,"lastExportedAt":1554887330152,"lastImportedAt":1554888047271},"staging":{"name":"staging","releaseTag":"i-Lc5WI16UFtBJfRyfzgfg}}}
7.4. 用于标记集成并删除未指定标签的端点
此端点使用 PUT
方法标记指定环境的集成。如果集成之前为新请求中指定的环境标记为环境,端点会从集成中删除该 environment 标签。
要在不删除未指定的环境标签的情况下标记集成,请调用 PATCH
方法端点。
方法和端点
PUT
/public/integrations/{id}/tags
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的机密令牌。请参阅 获取机密令牌。 |
路径参数 | ||
| string | 必需。要标记的集成的名称或内部 ID。请参阅 如何查找集成 ID。 |
其他参数 | ||
|
|
指定 |
| string | 必需。指定一个或多个以逗号分隔的环境标签。端点标记这些环境的指定集成。您必须已创建了 environment 标签,端点无法创建标签。请参阅 为 CI/CD 标记集成。 |
请求示例
在以下示例中,端点标记 test2
和 test3
环境的 timer-to-log
集成。如果集成之前标记为任何其他环境,端点会从集成中删除这些标签。
public/integrations/timer-to-log/tags --request PUT -d '["test2","test3"]'
生成
application/json
响应示例
{"test2":{"name":"test2","releaseTag":"i-LcXyw7GUFtBJfR_ylgtz","lastTaggedAt":1555085713},"test3":{"name":"test3","releaseTag":"i-LcXyw7GUFtBJfR_ylguz","lastTaggedAt":1555365085713}
7.5. 发布集成的端点
此端点发布指定的集成。如果集成已在运行,端点将停止集成并重新发布。
方法和端点
POST
/public/integrations/{id}/deployments
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的机密令牌。请参阅 获取机密令牌。 |
路径参数 | ||
| string | 必需。要发布的集成的名称或内部 ID。请参阅 如何查找集成 ID。 |
请求示例
在以下示例中,端点发布 timer-to-log
集成。
/public/integrations/timer-to-log/deployments
生成
application/json
响应示例
在本例中,ellipsis 表示某些响应的遗漏。
{"ID":"i-Lc0JLrsUFtBJfR_ylfEz:8","version":8," createdAt":1555365135324,"updatedAt":1555365135324,"userId":"system:serviceaccount:syndesis:syndesis-cd-client","currentState":"Pending","targetState":"Published","integrationId":"[Lc0-JLc0 . .2c+PC9zdmc+","description":"Trigger 事件基于间隔或 cron 表达式","isDerived":false},"stepKind":"endpoint"},{"id":"-Lc0I7wqEVfKCDDHC8Jv","configuredProperties":{"bodyLoggingEnabled":"true"}, "metadata":{"configured":"true"},"stepKind":"log","name":"Log"}]}],"continuousDeliveryState":{"test2":{"name":"test2","releaseTag":"i-LcXyw7GUFtBJfR_ylgtz","lastTaggedAt":1555085713},"test3":{"name":"test3","releaseTag":"test3GUFtBJfR_ylgtz","lastinuousDeliveryState"
7.6. 用于停止集成的端点
此端点停止指定的集成。
方法和端点
PUT
/public/integrations/{id}/deployments/stop
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的机密令牌。请参阅 获取机密令牌。 |
路径参数 | ||
| string | 必需。要停止的集成的名称或内部 ID。请参阅 如何查找集成 ID。 |
请求示例
在以下示例中,端点会停止 timer-to-log
集成。
/public/integrations/timer-to-log/deployments stop
生成
application/json
响应示例
没有 204
状态代码的内容
7.7. 用于导出集成的端点
此端点导出集成。默认行为是端点导出标记为指定环境的集成,并且从上次为那个环境标记为该环境时没有导出这些集成。您可以在要执行以下操作之一时指定选项:
- 导出 Fuse 在线环境中的所有集成,并使用指定的 environment 标签标记它们。
- 导出带有指定 environment 标签的所有集成,无论集成在最后一次导出后是否被更新和标记。
另请参阅: 调用 Fuse Online public API 导出端点。
方法和端点
GET
/public/integrations/{env}/export.zip
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的机密令牌。请参阅 获取机密令牌。 |
路径参数 | ||
| string | 必需。您在 Fuse Online 控制台中创建的环境标签。端点会导出标记为此环境的集成。 |
查询参数 | ||
| string | 可选。指定此选项以导出 Fuse Online 环境中的所有集成。端点会导出每个集成的当前版本。如果集成尚未标记为指定环境,则端点会将指定的 environment 标签添加到集成中。您必须已创建了 environment 标签,端点无法创建标签。 |
| string | 导出带有指定 environment 标签的所有集成。无论在最后一次导出集成后,是否编辑了集成并标记了集成。 |
其他参数 | ||
| string |
指定查询参数时需要。如果没有这个选项,导出的集成位于名为 |
请求示例
在第一个示例中,端点会导出已标记为 test1
环境的集成,并且自上次标记为该环境时没有导出这些集成。
/public/integrations/test1/export.zip
在下一个示例中,端点会导出已标记为 test1
环境的所有集成。集成自上次导出后是否更新了,这无关紧要。
/public/integrations/test1/export.zip?ignoreTimestamp=true -o export.zip
在最后一个示例中,端点确保每个集成都标记为 test1
环境,并返回 export.zip
文件中的所有集成。
/public/integrations/test1/export.zip?all=true -o export.zip
生成
application/octet-stream
响应
包含导出的集成的 export.zip
文件。如果没有要导出的集成,端点会返回 204
的 HTTP 状态。
7.8. 用于导入集成的端点
此端点导入提供的文件中的集成。另请参阅: 调用 Fuse Online public REST API 导入端点。
方法和端点
POST
/public/integrations
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的机密令牌。请参阅 获取机密令牌。 |
其他参数 | ||
| string | 必需。这是包含您要导入的集成的文件。您必须之前调用导出端点才能获取此文件。 |
| string | 必需。要添加到每个导入的集成中的环境标签。您必须已创建了 environment 标签,端点无法创建标签。 |
请求示例
在以下示例中,端点导入位于 export.zip
文件中的集成,并为 测试环境标记它们
。
/public/integrations -F data=@export.zip -F environment=testing --request POST
生成
multipart/form-data
响应示例
响应是导入的资源的列表,其中包括集成和连接。在以下示例中,ellipsis 表示此处省略了部分响应。
{"lastImportedAt":1554888047271,"results":[{"id":"i-Lc0JLc0JLrsUFtBJfR_ylfEz","version":5," createdAt":4800274935,"updatedAt":0,0,"tags":["timer"],"name":"timer-to-log","flows":[{"id":"-Lc0I5AZEVfHIHIHIGIw "metadata":…"description":"Trigger 事件基于一个间隔或 cron 表达式","isDerived":false},"stepKind":"endpoint"},{"id":"-Lc0I7wqEVfKCDDHC8Jv","configuredProperties":{"bodyLoggingEnabled":"true"},"metadata":{"configured":"true"},"metadata":{"configured":"true"}, "stepKind":"log","name":"Log"}]}],"continuousDeliveryState":{"staging":{"name":"staging","releaseTag":"i-Lc5WI16UFtBJfR_ylgfz","lastTaggedAt":1554887553159},"test":{"name":"test","releaseTag":"i-Lc5WI16UFtBJFtBfz","lastTaggedAtTag5359},"test":{" "lastExportedAt":1554887330152,"lastImportedAt":1554887859824}}}]}
7.9. 从特定集成中删除环境标签的端点
此端点从指定的集成中删除指定的环境标签。环境标签本身仍然存在,但它不再标记指定的集成。
方法和端点
DELETE
/public/integrations/{id}/tags/{env}
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的机密令牌。请参阅 获取机密令牌。 |
路径参数 | ||
| string | 所需的 path 参数。要取消标记的集成的名称或内部 ID。请参阅 如何查找集成 ID。 |
| string | 所需的 path 参数。要从指定集成中删除的环境标签。 |
其他参数 | ||
|
|
指定 |
请求示例
在以下示例中,端点会从 timer-to-log
集成中删除 dev1
环境标签。
/public/integrations/timer-to-log/tags/dev1 --request DELETE
响应示例
没有 204
状态代码的内容
7.10. 用于创建环境标签的端点
此端点会创建一个环境标签。在 Fuse Online 控制台中或通过调用公共 API 端点,不会使用这个标签标记集成。
方法和端点
POST
/public/environments/{env}
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的机密令牌。请参阅 获取机密令牌。 |
路径参数 | ||
| string | 必需。您要创建的环境标签。 |
生成
不生成任何内容,但响应如下:
响应 | 描述 |
---|---|
| 成功。 |
| 您指定的环境名称已存在。 |
| 服务器无法履行请求。 |
请求示例
在以下示例中,端点创建 dev1
环境标签:
/public/environments/dev1 --request POST
dev1
环境标签现在存在于您调用此端点的 Fuse Online 环境中。还没有标记此标签的任何集成。
响应示例
没有响应状态代码 204
的内容
7.11. 用于获取环境标签列表的端点
此端点返回 Fuse Online 环境中存在的环境标签列表。您可以在 Fuse Online 控制台中创建环境标签。请参阅为 CI/CD 管理环境标签。
方法和端点
GET
/public/environments[?withUses=true]
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的机密令牌。请参阅 获取机密令牌。 |
路径参数 | ||
| 布尔值 |
可选。如果命令指定了 |
生成
application/json
请求示例
/public/environments
响应示例:
["env-label-1", "env-label-2"]
/public/environments/?withUses=true
响应示例
[{"name":"env-label-1","uses":1},
{"name":"env-label-2","uses":0}]
7.12. 用于更改环境标签的端点
此端点会更改环境标签。现在,标记为原始环境标签的集成标记为新环境标签。
方法和端点
PUT
/public/environments/{env}
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的机密令牌。请参阅 获取机密令牌。 |
路径参数 | ||
| string | 必需。您要更改的环境标签。 |
其他参数 | ||
| string | 必需。指定环境的新标签。您必须已创建了 environment 标签,端点无法创建标签。 |
|
|
指定 |
请求示例
在以下示例中,端点将 dev1
环境标签更改为 dev2
:
/public/environments/dev1 -d 'dev2' --request PUT
为 dev1
环境标记的集成不再具有该标签。这些集成现在标记为 dev2
环境。
响应示例
没有响应状态代码 204
的内容
7.13. 从所有集成中删除环境标签的端点
此端点从应用的每个集成中删除指定的环境标签。
方法和端点
DELETE
/public/environments/{env}
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的机密令牌。请参阅 获取机密令牌。 |
路径参数 | ||
| string | 必需。要从具有它的集成中删除的环境标签。 |
其他参数 | ||
|
|
指定 |
请求示例
在以下示例中,端点会从具有它的任何集成中删除 dev1
标签:
/public/environments/dev1 --request DELETE
响应示例
没有响应状态代码 204
的内容
7.14. 用于更改连接属性的端点
此端点会更改指定连接的属性。这在导入具有需要配置的连接的集成后,这通常很有用。例如,您可能需要更改连接使用的凭证。
方法和端点
POST
/public/connections/{id}/properties
Name | 类型 | 描述 |
---|---|---|
所需的标头参数 | ||
|
| 端点所需的介质类型。 |
| Custom | 身份验证需要。 |
| Custom | 公开 Fuse Online 公共 REST API 的 OpenShift 服务帐户的机密令牌。请参阅 获取机密令牌。 |
路径参数 | ||
| string |
必需。将
|
请求示例
以下示例更改了 PostgresDB
连接的属性。user
属性的新值为 myuser
,password
属性的新值为 mypassword
:
/public/connections/PostgresDB/properties --request POST -d '{ "user": "myuser", "password": "mypassword" }'
生成
application/json
响应示例
在本例中,有一个指示大量响应部分的省略。
{"uses":0,"id":"i-LaOziUGpQE45nua4pfCz","name":"TODO app","configuredProperties":{"password":"»ENC:c2cb731046372a275b76beab92aefa061f79b43fb791fb599d9e85ec0235a7e","basePath":"/api","host":"http://todo-syndesis.my-minishift.syndesis.io/","specification":IdId]":"Update9662" "createdDate":1553066813379,"board":{"i-Lbj4-vqUFtBJfR_ylfCz","metadata":{"connector-id":"i-LaOzcPZpQE45nua4pfBz","connector-version-latest":"1","connector-version-connection":"1"}, "messages":[{"level":"WARN","code":"SYNDESIS007"}],"createdAt":1554494263030,"updatedAt":15544263727,"targetResourceId":"i-LaOziUGpQE45nua4pfCz","notices":0,"warnings":1, "errors":0},"isDerived":false}
第 8 章 重新品牌 Fuse 在线用户界面
您可以通过替换 Fuse Online 应用程序名称、徽标、图标和其他用户界面详情来重新品牌 Fuse Online。您可以在 syndesis-ui
部署文件中将自定义资源挂载为 ConfigMap
对象。
先决条件
- Fuse Online 在客户管理的环境中安装并在 OpenShift Container Platform 上运行。
-
oc
客户端工具连接到安装 Fuse Online 的 OCP 集群。 - 有安装 Fuse Online 的权限。
流程
运行以下命令,获取安装 Fuse Online 的
syndesis-ui
pod 的名称:oc get pods
通过调用以下命令来获取可自定义的徽标、图标、字体和背景,并将 SYNDESIS_UI_POD_NAME 替换为运行
syndesis-ui
的 pod 的实际名称:oc rsync SYNDESIS_UI_POD_NAME:/opt/app-root/src/static/media ~/
这会将用户界面资源放在
~/media/
文件夹中。-
编辑并保存包含标头徽标的文件,即
~/media/syndesis_logo_full_darkbkg.9c467d96.svg
。 通过创建包含更新的徽标文件的
ConfigMap
对象,将修改的文件上传到集群:cd ~/ oc create configmap syndesis-ui-custom-logo --from-file=media/syndesis_logo_full_darkbkg.9c467d96.svg
修改
syndesis-ui
部署文件,以挂载syndesis-ui-custom-logo
ConfigMap
对象。通过调用oc edit dc/syndesis-ui
,选择 Applications > Deployments > syndesis-ui > Actions > Edit YAML 来完成此操作。在
spec.template.containers.volumeMounts
下添加以下内容:-name: syndesis-ui-custom-logo-volume mountPath: /opt/app-root/src/static/media/syndesis_logo_full_darkbkg.9c467d96.svg subPath: syndesis_logo_full_darkbkg.9c467d96.svg
在
spec.template.volumes
下,添加以下内容:-name: syndesis-ui-custom-logo-volume configMap: name: syndesis-ui-custom-logo
-
保存
syndesis-ui
部署文件。
-
对位于
'~/media
文件夹和您要自定义的每个文件重复步骤 3 到 5。 编辑并保存包含应用程序标题的文件:
创建要更新该文件的目录:
mkdir ~/syndesis-custom/src
通过调用以下命令来获取应用程序标题文件,并将 SYNDESIS_UI_POD_NAME 替换为运行
syndesis-ui
的 pod 的实际名称:oc rsync SYNDESIS_UI_POD_NAME:/opt/app-root/src/index.html ~/syndesis-custom/src
替换应用标题。例如:
sed -i 's/<title>.*<\/title>/<title>NEW_TITLE<\/title>/g' ~/syndesis-custom/src/index.html
通过创建包含更新文件的
ConfigMap
对象,将修改后的应用程序标题文件上传到集群:cd ~/syndesis-custom/src oc create configmap syndesis-ui-custom-index --from-file=index.html
通过挂载
syndesis-ui
-index
部署:ConfigMap
对象来修改 syndesis-ui在
spec.template.containers.volumeMounts
下添加以下内容:-name: syndesis-ui-custom-vindex-olume mountPath: /opt/app-root/src/index.html subPath: index.html
在
spec.template.volumes
下,添加以下内容:-name: syndesis-ui-custom-index-volume configMap: name: syndesis-ui-custom-index
-
保存
syndesis-ui
部署文件。
结果
保存 syndesis-ui
部署文件会自动使用反映您的更改的用户界面重新部署 Fuse Online。Fuse Online 的后续重新部署也反映了您的更改。