Routes 在本实验中,我们将使最终用户可以看到我们的应用程序,以便他们可以访问它。. 背景:路由 虽然服务 service在 OpenShift 环境中提供内部抽象和负载平衡,但有时OpenShift外部的客户端(用户、系统、设备等) 需要访问应用程序。外部客户端能够访问在 OpenShift 中运行的应用程序的方式是通过 OpenShift 路由层。后面的数据对象是Route。 默认的 OpenShift 路由器 (HAProxy) 使用传入请求的 HTTP 标头来确定代理连接的位置。您可以选择为Route定义安全性,例如 TLS 。如果您希望您的Services以及您的Pods可以从外部世界访问,您需要创建一个Route。 Red Hat 是Kubernetes 社区的主要贡献者之一,并将Routes 背后的设计原则贡献给社区,这对 Ingress 设计产生了重大影响。红帽在Openshift中同时支持Ingress和Route。Ingress 和 Route 虽然相似,但在成熟度和功能上存在差异。如果您打算同时在多个 Kubernetes 发行版上部署您的应用程序,那么 Ingress 可能是一个不错的选择,但是本教程不做讨论。您可以通过以下文档,进一步了解。 Kubernetes Ingress 与 OpenShift 路由, Kubernetes参考文档, 红帽ingress文档 练习:创建路由 您可能还记得,当我们部署parksmap应用程序时,我们取消选中复选框以创建Route。通常它会自动为我们创建。幸运的是,创建Route是一个非常简单的过程。 您可以从 OpenShift 控制台或使用ocCLI创建路由。使用选项卡选择添加route所需的方法。 OpenShift Console oc Command Line 通过管理员视角,只需单击网络 → 路由,然后单击创建路由按钮。 在名称字段中输入 parksmap 从Service字段中,选择parkmap。对于目标端口,选择8080。 在Security部分,选中Secure route。从TLS 终止列表中选择Edge 将所有其他字段留空并单击 创建Create: 默认使用集群应用域的 TLS 证书,因此您无需添加任何证书。如果您希望自定义域解析为托管路由器的 OpenShift 节点,您也可以在每个路由的基础上添加证书。 创建Route 时,可以提供一些其他选项,例如Route的主机名和路径或其他 TLS 配置。 我们只需简单的 把 Service expose, 但首先我们需要验证我们还没有在Openshift中创建任何Routes: oc get routes No resources found. 现在我们需要获取要`expose`的服务service名称: oc get services NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE parksmap 172.30.169.213 <none> 8080/TCP 5h 一旦我们知道了服务名称,创建一个路由就是一个简单的单命令任务: oc create route edge parksmap --service=parksmap route.route.openshift.io/parksmap exposed 使用以下命令验证路由是否已创建: oc get route NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD parksmap parksmap-%PROJECT%.%CLUSTER_SUBDOMAIN% parksmap 8080-tcp edge None 您还可以在“资源”选项卡下的“开发人员视角”中为您的部署配置(DC)`parksmap`中验证路由。另请注意,现在视图上有一个装饰器图标。如果您单击它,它将在浏览器中打开您的route的 URL 此应用程序现在可在 开发者视图 中显示的 URL 处获得。单击链接,您将看到它。 如果这是第一次打开此页面,浏览器将请求获得您的位置的许可。Frontend 应用程序需要使用它来将世界地图居中到您的位置,如果您不允许,它将只使用默认位置。 Scaling Apps缩放应用程序 日志