1.3. 在 OpenShift 3.11 中设置 Fuse 控制台
在 OpenShift 3.11 中,您可以使用两种方式设置 Fuse 控制台:
- 通过将 集中式 Fuse 控制台目录项添加到项目中,以便您可以监控项目中所有正在运行的 Fuse 容器。
- 以便可以监控单个正在运行的 Fuse 容器。
您可以从 OpenShift 控制台或命令行部署 Fuse 控制台。
先决条件
- 如 OpenShift 的 Fuse 指南中所述,在 OpenShift 镜像流和 Fuse 控制台安装 Fuse。
对于 OpenShift 3.11 上的集群模式,您需要集群管理员角色和集群模式模板。运行以下命令:
oc adm policy add-cluster-role-to-user cluster-admin system:serviceaccount:openshift-infra:template-instance-controller
- 默认情况下,集群模式模板仅在 OpenShift Container Platform 的最新版本中可用。它不由 OpenShift Online 默认目录提供。
- Fuse 控制台模板默认配置端到端加密,以便您的 Fuse 控制台请求是从浏览器到集群服务的安全端到端。
- Fuse 控制台的用户管理由 OpenShift 处理。
- 基于角色的访问控制(在部署后访问 Fuse 控制台的用户)还不适用于 OpenShift 上的 Fuse。
第 1.3.1 节 “从 OpenShift 3.11 控制台部署 Fuse 控制台”
第 1.3.2 节 “从 OpenShift 3.11 上的 Fuse 控制台监控单个 Fuse pod”
1.3.1. 从 OpenShift 3.11 控制台部署 Fuse 控制台
要从 OpenShift 3.11 控制台在 OpenShift 集群上部署 Fuse 控制台,请按照以下步骤操作。
流程
- 在 OpenShift 控制台中,打开现有项目或创建新项目。
将 Fuse 控制台添加到 OpenShift 项目中:
选择 Add to Project
Browse Catalog。 此时将打开 Select a item to the current project 页面。
在 Search 字段中,键入 Fuse Console。
搜索结果中应该会显示 Red Hat Fuse 7.x Console 和 Red Hat Fuse 7.x Console (cluster) 项目。
如果 Red Hat Fuse Console 项目没有显示为搜索结果,或者显示的项目不是最新版本,您可以手动安装 Fuse Console 模板,如 OpenShift 指南中的 Fuse 的 "Prepare OpenShift server" 部分所述。
点 Red Hat Fuse Console 项之一:
- Red Hat Fuse 7.x 控制台 - 此版本的 Fuse 控制台发现并连接到当前 OpenShift 项目中部署的 Fuse 应用程序。
- Red Hat Fuse 7.x 控制台(集群) - 此版本的 Fuse 控制台可以发现和连接到在 OpenShift 集群上的多个项目间部署的 Fuse 应用程序。
在 Red Hat Fuse Console 向导中,单击 Next。向导的 Configuration 页面将打开。
另外,您可以更改配置参数的默认值。
点 Create。
向导的 Results 页面表示已创建了 Red Hat Fuse 控制台。
- 单击 Continue to the project overview 链接,以验证 Fuse Console 应用程序是否已添加到项目中。
要打开 Fuse 控制台,请单击提供的 URL 链接,然后登录。
浏览器中打开了 Authorize Access 页面,其中列出了所需权限。
点击 Allow selected permissions。
Fuse 控制台在浏览器中打开,并显示项目中运行的 Fuse pod。
对于您要查看的应用程序,点 Connect。
此时将打开一个新浏览器窗口,显示 Fuse 控制台中的应用程序。
1.3.2. 从 OpenShift 3.11 上的 Fuse 控制台监控单个 Fuse pod
您可以为在 OpenShift 3.11 上运行的 Fuse pod 打开 Fuse 控制台:
在 OpenShift 项目中的 Applications
Pods 视图中,点 pod 名称查看正在运行的 Fuse pod 的详情。在此页面的右侧,您会看到容器模板的摘要: 从此视图中,单击 Open Java Console 链接以打开 Fuse 控制台。
注意要将 OpenShift 配置为在 pod 视图中显示到 Fuse Console 的链接,在 OpenShift 镜像上运行 Fuse 的 pod 必须在 name 属性中声明 TCP 端口,设置为
jolokia
:{ "kind": "Pod", [...] "spec": { "containers": [ { [...] "ports": [ { "name": "jolokia", "containerPort": 8778, "protocol": "TCP" }
1.3.3. 从命令行部署 Fuse 控制台
表 1.1 “Fuse 控制台模板” 描述可用于从命令行部署 Fuse 控制台的 OpenShift 3.1 模板,具体取决于 Fuse 应用程序部署的类型。
类型 | 描述 |
---|---|
| Fuse 控制台可以发现并连接到在多个命名空间或项目中部署的 Fuse 应用程序。要部署此模板,您必须具有 OpenShift cluster-admin 角色。 |
| 此模板限制 Fuse 控制台访问当前 OpenShift 项目(命名空间),因此充当单个租户部署。若要部署此模板,您必须拥有当前 OpenShift 项目的 admin 角色。 |
另外,您可以通过运行以下命令来查看所有模板的参数列表:
oc process --parameters -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.fuse-750056-redhat-00006/fis-console-namespace-template.json
流程
从命令行部署 Fuse 控制台:
运行以下命令,基于 Fuse 控制台模板创建一个新应用程序(其中 myproject 是项目的名称):
对于 Fuse Console 集群模板,其中
myhost
是用于访问 Fuse 控制台的主机名:oc new-app -n myproject -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.fuse-750056-redhat-00006/fis-console-cluster-template.json -p ROUTE_HOSTNAME=myhost
对于 Fuse Console 命名空间 模板:
oc new-app -n myproject -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.fuse-750056-redhat-00006/fis-console-namespace-template.json
注意您可以省略 命名空间 模板的 route_hostname 参数,因为 OpenShift 会自动生成一个。
运行以下命令,获取 Fuse 控制台部署的状态和 URL:
oc status
- 要从浏览器访问 Fuse 控制台,请使用提供的 URL (例如 https://fuse-console.192.168.64.12.nip.io)。