×

先决条件

要在**拓扑结构**视图中查看您的应用程序并与之交互,请确保:

查看应用程序的拓扑结构

您可以使用**开发者**视角中的左侧导航面板导航到**拓扑结构**视图。部署应用程序后,您将自动定向到**图表视图**,您可以在其中查看应用程序 Pod 的状态,快速访问公共 URL 上的应用程序,访问源代码以修改它,并查看上次构建的状态。您可以放大和缩小以查看特定应用程序的更多详细信息。

**拓扑结构**视图提供使用**列表**视图监控应用程序的选项。使用**列表视图**图标(odc list view icon)查看所有应用程序的列表,并使用**图表视图**图标(odc topology view icon)切换回图表视图。

您可以根据需要自定义视图,方法如下:

  • 使用**按名称查找**字段查找所需的组件。搜索结果可能显示在可见区域之外;单击左下角工具栏中的**适应屏幕**以调整**拓扑结构**视图的大小,以显示所有组件。

  • 使用**显示选项**下拉列表配置各种应用程序分组的**拓扑结构**视图。选项取决于项目中部署的组件类型。

    • **展开**分组

      • 虚拟机:切换以显示或隐藏虚拟机。

      • 应用程序分组:清除以将应用程序组压缩到包含应用程序组概述及其关联警报的卡片中。

      • Helm 版本:清除以将作为 Helm 版本部署的组件压缩到包含给定版本概述的卡片中。

      • Knative 服务:清除以将 Knative 服务组件压缩到包含给定组件概述的卡片中。

      • Operator 分组:清除以将使用 Operator 部署的组件压缩到包含给定组概述的卡片中。

    • 根据**Pod 数量**或**标签****显示**元素

      • Pod 数量:选择以在组件图标中显示组件的 Pod 数量。

      • 标签:切换以显示或隐藏组件标签。

**拓扑结构**视图还提供**导出应用程序**选项,以便以 ZIP 文件格式下载您的应用程序。然后,您可以将下载的应用程序导入到另一个项目或集群。有关更多详细信息,请参阅附加资源部分中的“将应用程序导出到另一个项目或集群”。

与应用程序和组件交互

在 Web 控制台的**开发者**视角中的**拓扑结构**视图中,**图表视图**提供以下选项来与应用程序和组件交互:

  • 单击**打开 URL**(odc open url)查看您的应用程序通过路由在公共 URL 上公开。

  • 单击**编辑源代码**以访问您的源代码并对其进行修改。

    仅当您使用**从 Git**、**从目录**和**从 Dockerfile**选项创建应用程序时,此功能才可用。

  • 将鼠标悬停在容器单元左下角的图标上,即可查看最新版本的名称及其状态。应用程序构建的状态显示为**新建**(odc build new)、**等待中**(odc build pending)、**运行中**(odc build running)、**已完成**(odc build completed)和**失败**(odc build failed)和**已取消**(odc build canceled)。

  • 容器单元的状态或阶段由不同的颜色和工具提示指示,如下所示:

    • **运行中**(odc pod running): 容器单元已绑定到节点,并且已创建所有容器。至少有一个容器仍在运行,或正在启动或重新启动过程中。

    • **未就绪**(odc pod not ready): 对于运行多个容器的容器单元,并非所有容器都已就绪。

    • **警告**(odc pod warning): 容器单元中的容器正在终止,但是终止未成功。某些容器可能处于其他状态。

    • **失败**(odc pod failed): 容器单元中的所有容器都已终止,但至少有一个容器终止时失败。也就是说,容器以非零状态退出或被系统终止。

    • **等待中**(odc pod pending): 容器单元已被 Kubernetes 集群接受,但一个或多个容器尚未设置并准备好运行。这包括容器单元等待调度的时长以及通过网络下载容器镜像的时长。

    • **已成功**(odc pod succeeded): 容器单元中的所有容器都已成功终止,并且不会重新启动。

    • **终止中**(odc pod terminating): 当容器单元正在删除时,某些 kubectl 命令会将其显示为**终止中**。**终止中**状态不是容器单元阶段之一。容器单元会被授予一个优雅的终止时间段,默认为 30 秒。

    • **未知**(odc pod unknown): 无法获取容器单元的状态。此阶段通常是由于与应运行容器单元的节点通信发生错误而导致的。

  • 创建应用程序并部署镜像后,状态将显示为**等待中**。构建应用程序后,它将显示为**运行中**。

    odc application topology
    图 1. 应用程序拓扑

    应用程序资源名称后附加了不同类型资源对象的指示符,如下所示:

    • **CJ**: CronJob

    • **D**: Deployment

    • **DC**: DeploymentConfig

    • **DS**: DaemonSet

    • **J**: Job

    • **P**: Pod

    • **SS**: StatefulSet

    • odc serverless app (Knative): 无服务器应用程序

      无服务器应用程序在**图表视图**中加载和显示需要一些时间。部署无服务器应用程序时,它首先创建一个服务资源,然后创建一个修订版本。之后,它将被部署并在**图表视图**中显示。如果它是唯一的负载,您可能会被重定向到**添加**页面。修订版本部署后,无服务器应用程序将显示在**图表视图**中。

调整应用程序 Pod 规模并检查构建和路由

**拓扑**视图在**概述**面板中提供了已部署组件的详细信息。您可以使用**概述**和**详细信息**选项卡来调整应用程序 Pod 的规模,并检查构建状态、服务和路由,方法如下:

  • 单击组件节点以查看右侧的**概述**面板。使用**详细信息**选项卡来:

    • 使用向上和向下箭头手动缩放 Pod,以增加或减少应用程序实例的数量。对于无服务器应用程序,Pod 在空闲时会自动缩减到零,并根据通道流量进行扩展。

    • 检查应用程序的**标签**、**注释**和**状态**。

  • 单击**资源**选项卡以:

    • 查看所有 Pod 的列表,查看其状态,访问日志,并单击 Pod 以查看 Pod 详细信息。

    • 查看构建、其状态、访问日志,并在需要时启动新的构建。

    • 查看组件使用的服务和路由。

    对于无服务器应用程序,**资源**选项卡提供有关该组件使用的修订版本、路由和配置的信息。

向现有项目添加组件

您可以向项目添加组件。

步骤
  1. 导航到**+添加**视图。

  2. 单击左侧导航窗格旁边的**添加到项目** (odc add to project) 或按Ctrl+Space

  3. 搜索组件并单击**启动** / **创建** / **安装**按钮,或单击Enter将组件添加到项目,并在拓扑**图表视图**中查看它。

    odc quick search
    图 2. 通过快速搜索添加组件

或者,您也可以使用上下文菜单中的可用选项,例如**从 Git 导入**、**容器镜像**、**数据库**、**从目录**、**Operator 支持**、**Helm Chart**、**示例**或**上传 JAR 文件**,方法是在拓扑**图表视图**中右键单击以向项目添加组件。

odc context project
图 3. 添加服务的上下文菜单

在一个应用程序中分组多个组件

您可以使用**+添加**视图向项目添加多个组件或服务,并使用拓扑**图表视图**在一个应用程序组中对应用程序和资源进行分组。

先决条件
  • 您已使用**开发者**视角在 OpenShift Container Platform 上创建并部署了至少两个或更多组件。

步骤
  • 要向现有应用程序组添加服务,请按Shift + 并将其拖动到现有应用程序组。将组件拖动并添加到应用程序组会将所需的标签添加到组件。

    odc app grouping label
    图 4. 应用程序分组

或者,您也可以按照以下步骤将组件添加到应用程序:

  1. 单击服务 Pod 以查看右侧的**概述**面板。

  2. 单击**操作**下拉菜单并选择**编辑应用程序分组**。

  3. 在**编辑应用程序分组**对话框中,单击**应用程序**下拉列表,然后选择合适的应用程序组。

  4. 单击**保存**将服务添加到应用程序组。

您可以通过选择组件并使用Shift + 拖动将其从应用程序组中拖出,从而从应用程序组中移除组件。

向您的应用程序添加服务

要向您的应用程序添加服务,请使用拓扑**图表视图**中上下文菜单中的**+添加**操作。

除了上下文菜单外,您还可以通过使用侧边栏或将应用程序组的悬空箭头悬停并拖动来添加服务。

步骤
  1. 右键单击拓扑**图表视图**中的应用程序组以显示上下文菜单。

    odc context menu
    图 5. 添加资源上下文菜单
  2. 使用**添加到应用程序**选择向应用程序组添加服务的方法,例如**从 Git**、**容器镜像**、**从 Dockerfile**、**从 Devfile**、**上传 JAR 文件**、**事件源**、**通道**或**代理**。

  3. 完成您选择的方法的表单,然后单击**创建**。例如,要基于 Git 存储库中的源代码添加服务,请选择**从 Git**方法,填写**从 Git 导入**表单,然后单击**创建**。

从您的应用程序中移除服务

在拓扑**图表视图**中,使用上下文菜单从您的应用程序中移除服务。

步骤
  1. 右键单击拓扑**图表视图**中应用程序组中的服务以显示上下文菜单。

  2. 选择**删除部署**以删除服务。

    odc deleting deployment
    图 6. 删除部署选项

用于拓扑视图的标签和注释

**拓扑**视图使用以下标签和注释:

节点中显示的图标

节点中的图标是通过使用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 应用程序的标签和注解指南

更多资源