7.3. OpenShift 上的 Fuse
本节列出了影响 OpenShift 中 Fuse 应用程序部署的问题。有关影响特定容器的问题的详情,请参阅 Spring Boot、Apache Karaf 上的 Fuse 以及 JBoss EAP 上的 Fuse 部分。OpenShift 发行版上的 Fuse 有以下已知问题:
- ENTESB-10817 Openshift 4.1 + FMP: Unexpected response (403 Forbidden)到授权请求。缺少 header:[Location]!
在 OpenShift Container Platform (OCP) 4.1 上,如果
fabric8-maven-plugin
使用 Fabric8 的 Kubernetes 客户端实现来验证自身,使其能够自行验证 OpenShift以下条件:[ERROR] Failed to execute goal org.jboss.redhat-fuse:fabric8-maven-plugin:7.4.0.fuse-740024:build (default) on project fabric8-maven-sample-zero-config: Failed to execute the build: Unable to build the image using the OpenShift build service: Unexpected response (403 Forbidden), to the authorization request. Missing header:[Location]!
特别是,工具用户指南中的 在 OpenShift 快速入门示例上构建和部署 Fuse 的步骤依赖于
fabric8-maven-plugin
直接向 OpenShift 进行身份验证。按照小节中的说明,将 Fuse 集成项目部署到 OpenShift,以将项目部署到 OCP 4.1 集群,请按如下所示修改第 5 步:- 登录到您要部署应用程序的 OCP 4.1 集群的 OpenShift 控制台。
-
单击 OpenShift 控制台右上角的用户名,再选择菜单选项 Copy Login Command。这会将
oc login https://192.168.42.218:8443 --token=xxxxxxxx
格式的字符串复制到剪贴板中,xxxxxxxx
是一个代表会话令牌的 base-64 编码字符串。 -
从 VM 参数 窗格中删除
-Dkubernetes.auth.basic.password=admin
设置,并将它替换为设置,-Dkubernetes.auth.token=
,其中 xxxxxxxx 是从剪贴板字符串中提取的会话令牌。xxxxxxxx
注意Fuse on OpenShift Guide 中的示例和教程通常依赖于
oc login
命令创建的会话。因此,如果您遵循其中一个示例的步骤,则不会遇到此错误。- 在 OCP4.1 beta 上使用 Fuse Console ENTESB-10694 问题
在 OpenShift 4 上,如果要使用 Fuse 控制台管理 Fuse 服务,则必须使用 OperatorHub 中的社区操作器安装社区版本(Hawtio)。您可以从 OpenShift Web 控制台的主目录访问 OperatorHub。
注意Kubernetes Operator 是一个简化 OpenShift (或 Kubernetes)应用程序的安装和管理的脚本。
要在 Fuse 控制台代理和 Jolokia 代理安全之间保持连接,请在安装 Fuse Console 的社区版本前,并在部署前生成、签名和部署客户端证书。有关如何在 OpenShift 4 中保护 Fuse 控制台的说明,请参阅这个 README 文件。
- ENTESB-10577 Apicurito 不支持 YAML Open API spec 文件
- 在 OpenShift 上的 Fuse 7.4 中,Apicurito 默认 以 YAML 格式生成 OpenAPI 规格文件,但不能重新导入生成的 YAML 文件。目前只能将 JSON 格式导入到 Apicurito 中。