8.3.4. 为 AMQ Broker 管理控制台创建路由
默认情况下,集群模板不会公开 AMQ Broker 管理控制台。这是因为 OpenShift 代理在集群中的每个代理执行负载均衡,因此无法控制在给定时间连接哪些代理控制台。
以下示例演示了如何配置集群中的每个代理,以连接到自己的管理控制台实例。为此,您可以为集群中的每个代理 Pod 创建专用的 Service-and-Route 组合。
先决条件
- 您已部署了一组集群代理,每个代理在自己的 Pod 中运行。请参阅 部署一组集群代理。
步骤
使用 StatefulSet 选择器在 Pod 间选择,为集群中的每个 Pod 创建常规 Service。要做到这一点,以
.yaml格式部署一个 Service 模板,如下所示:apiVersion: v1 kind: Service metadata: annotations: description: 'Service for the management console of broker pod XXXX' labels: app: application2 application: application2 template: amq-broker-78-persistence-clustered name: amq2-amq-console-XXXX namespace: amq75-p-c-ssl-2 spec: ports: - name: console-jolokia port: 8161 protocol: TCP targetPort: 8161 selector: deploymentConfig: application2-amq statefulset.kubernetes.io/pod-name: application2-amq-XXXX type: ClusterIP在前面的模板中,将
XXXX替换为您要与该服务关联的代理 Pod 的 ordinal 值。例如,要将 Service 与集群中的第一个 Pod 关联,请将XXXX设为 0。要将服务与第二个 Pod 关联,请将XXXX设置为1,以此类推。为集群中的每个代理 Pod 保存和部署模板实例。
注意在上面显示的示例模板中,选择器使用 Kubernetes 定义的 Pod 名称。
为每个代理 Pod 创建一个路由,以便 AMQ Broker 管理控制台可以连接到 Pod。
单击
。 这会打开 Edit Route 页面。
-
在 Services 下拉菜单中,选择之前创建的代理服务,将其与 Route 关联,例如
amq2-amq-console-0。 -
将 Target Port 设为
8161,为 AMQ Broker 管理控制台启用访问权限。 要显示 TLS 参数,请选择 Secure route 复选框。
在 TLS 终止 下拉菜单中选择 Passthrough。
此选择将所有通信转发到 AMQ Broker,无需 OpenShift 路由器解密并重新发送它。
点 Create。
当您创建与其中一个代理 Pod 关联的路由时,生成的
.yaml文件包括类似如下的行:spec: host: amq2-amq-console-0-amq75-p-c-2.apps-ocp311.example.com port: targetPort: console-jolokia tls: termination: passthrough to: kind: Service name: amq2-amq-console-0 weight: 100 wildcardPolicy: None
-
在 Services 下拉菜单中,选择之前创建的代理服务,将其与 Route 关联,例如
- 要访问特定代理实例的管理控制台,请将上方显示 的主机 URL 复制到 Web 浏览器。
其他资源
- 有关代理集群的更多信息,请参阅配置消息重新分发。