2.4. 使用 Topology 视图查看应用程序组成情况
Web 控制台的 Developer 视角中有一个 Topology 视图,它以可视化方式展示项目中的所有应用程序、它们的构建状态,以及关联的组件和服务。
先决条件
要在 Topology 视图中查看应用程序并与之交互,请确保:
- 已登录 Web 控制台。
- 处于 Developer 视角。
- 在项目中拥有适当的角色和权限,可在 OpenShift Container Platform 中创建应用程序和其他工作负载。
- 您已使用 Developer 视角在 OpenShift Container Platform 上创建并部署了应用程序。。
2.4.1. 查看应用程序拓扑
您可以使用 Developer 视角中的左侧导航面板进入 Topology 视图。创建应用程序后,您会自动定向到 Topology 视图,从中可查看应用程序 Pod 状态,快速访问公共 URL 上的应用程序,访问源代码以进行修改,以及查看上一次构建的状态。您可以缩放视图来查看特定应用程序的更多详情。
无服务器应用程序显示有 Knative 符号 ( ) 表示。
无服务器应用程序需要一些时间才能加载并显示在 Topology 视图中。创建无服务器应用程序时,首先会创建一个服务资源,然后创建一个修订。之后,进行部署并将其显示在 Topology 视图中。如果它是唯一的工作负载,可能会重定向到 Add 页面。部署了修订后,无服务器应用程序就会显示在 Topology 视图中。
Pod 的状态或阶段由不同的颜色和工具提示来表示:Running ( )、Not Ready ( )、Warning( )、Failed( )、Pending( )、Succeeded( )、Terminating( ) 或 Unknown( ) 表示。如需有关 Pod 状态的更多信息,请参阅 Kubernetes 文档。
创建应用程序并部署镜像后,其状态会显示为 Pending。构建应用程序后,它会显示为 Running。
应用程序资源名称附有代表不同类型资源对象的指示符,如下所示:
- DC:DeploymentConfigs
- D:Deployment
- SS:StatefulSet
- DS:Daemonset
2.4.2. 与应用程序交互
Web 控制台的 Developer 视角中的 Topology 视图提供了如下可与应用程序交互的选项:
- 点击 Open URL ( ),可查看通过公共 URL 上路由公开的应用程序。
点击 Edit Source code 可访问您的源代码并进行修改。
注意只有使用 From Git、From Catalog 和 From Dockerfile 选项创建了应用程序时,此功能才可用。
如果集群中安装了 Eclipse Che Operator,则会创建 Che 工作区 ( ),您也会定向到此工作区来编辑源代码。如果没有安装,您会被定向到 Git 存储库 ( ),即源代码的托管位置。
- 光标悬停在 Pod 左下方图标上,可查看最新构建的名称及其状态。应用程序构建的状态表示为:New ( )、Pending ( )、Running ( )、Completed ( )、Failed ( ) 和 Canceled ( ) 表示。
2.4.3. 扩展应用程序 Pod 以及检查构建和路由
Topology 视图在 Overview 面板中提供所部署组件的详情。您可以使用 Overview 和 Resources 选项卡来缩放应用程序 Pod,以及检查构建状态、服务和路由等,如下所示:
点击组件节点,以查看右侧的 Overview 面板。使用 Overview 选项卡可以:
- 使用向上和向下箭头缩放 Pod,手动增加或减少应用程序的实例数。对于无服务器应用程序,Pod 数在空闲时会自动缩减为零,而且能根据频道流量扩展。
- 检查应用程序的 Labels、Annotations 和 Status。
点击 Resources 选项卡可以:
- 查看所有 Pod 列表,查看其状态,访问日志,还能点击 Pod 来查看 Pod 详情。
- 查看构建及其状态,访问日志,并在需要时启动新的构建。
- 查看组件所使用的服务和路由。
对于无服务器应用程序,Resources 选项卡提供用于该组件的版本、路由和配置的有关信息。
2.4.4. 对应用程序中的多个组件进行分组
您可以使用 Add 页面在项目中添加多个组件或服务,还可使用 Topology 页面对应用程序组中的应用程序和资源进行分组。以下流程将 MongoDB 数据库服务添加到具有 Node.js 组件的现有应用程序中。
先决条件
- 确保您已使用 Developer 视角在 OpenShift Container Platform 上创建并部署了 Node.js 应用程序。
流程
在您的项目中创建并部署 MongoDB 服务,如下所示:
- 在 Developer 视角中,导航到 Add 视图,再选择 Database 选项来查看 Developer Catalog,其包含的多个选项可作为组件或服务添加到应用程序中。
- 点击 MongoDB 选项以查看该服务的详情。
- 点击 Instantiate Template 查看使用 MongoDB 服务的详情自动填充的模板,然后点击 Create 来创建服务。
- 在左侧导航面板中,点击 Topology 以查看项目中部署的 MongoDB 服务。
- 要将 MongoDB 服务添加到现有应用程序组中,请选择 mongodb Pod 并将其拖到应用程序中;MongoDB 服务会添加到现有应用程序组中。
拖动组件并将其添加到应用程序组中时,会自动将所需的标签添加到组件。点击 MongoDB 服务节点,可看到标签
app.kubernetes.io/part-of=myapp
已添加到 Overview 面板中的 Labels 部分。
另外,您还可以在应用程序中添加组件,如下所示:
- 要将 MongoDB 服务添加到应用程序中,请点击 mongodb Pod 以查看右侧的 Overview 面板。
- 点击面板右上角的 Actions 下拉菜单,再选择 Edit Application Grouping。
- 在 Edit Application Grouping 对话框中,点击 Select an Application 下拉列表,再选择适当的应用程序组。
- 点击 Save 以查看添加到应用程序组中的 MongoDB 服务。
2.4.5. 在应用程序内和应用程序间连接组件
除了对一个应用程序中的多个组件进行分组外,还可以使用 Topology 视图来相互连接组件。您可以将 MongoDB 服务与 Node.js 应用程序连接,如下所示:
先决条件
- 确保您已使用 Developer 视角在 OpenShift Container Platform 上创建并部署了 Node.js 应用程序。
- 确保已使用 Developer 视角在 OpenShift Container Platform 上创建并部署了 MongoDB 服务。
流程
光标悬停到 MongoDB 服务上,节点上出现悬浮的箭头。
- 点击箭头并将它拖向 Node.js 组件,使它与 MongoDB 服务连接。
点击 MongoDB 服务以查看 Overview 面板。在 Annotations 部分,点击编辑图标,即可看到 Key =
app.openshift.io/connects-to
和 Value =nodejs-ex
注解已添加到该服务。同样,您可以创建其他应用程序和组件,并在它们之间建立连接。
2.4.6. 用于 Topology 视图的标签和注解
Topology 使用下列标签和注解:
- 节点中显示的图标
-
节点中的图标是通过使用
app.openshift.io/runtime
标签(随后是app.kubernetes.io/name
标签)查找匹配图标来定义的。这种匹配是通过预定义的图标集合来完成的。 - 到源代码编辑器或源的链接
-
app.openshift.io/vcs-uri
注解用于创建源代码编辑器的链接。 - 节点连接器
-
app.openshift.io/connects-to
注解用于连接节点。 - 应用程序分组
-
app.kubernetes.io/part-of=<appname>
标签用于对应用程序、服务和组件进行分组。
如需了解 OpenShift Container Platform 应用程序必须使用的标签和注解,请参阅 OpenShift 应用程序的标签和注解指南。