Menu Close

第 2 章 创建应用程序

2.1. 使用 Developer 视角创建应用程序

Web 控制台中的 Developer 视角为您提供了下列选项,以便您从 +Add 视图中创建应用程序和相关服务,并将它们部署到 OpenShift Container Platform:

  • 入门资源:使用这些资源帮助您开始使用开发人员控制台。您可以使用 Options 菜单 kebab 来隐藏标头。

    • 使用示例创建应用程序:使用现有代码示例开始在 OpenShift Container Platform 上创建应用程序。
    • 使用引导式练习文档构建:遵循指导文档构建应用并熟悉关键概念和术语。
    • 探索开发人员新功能:探索 Developer 视角中的新功能和资源。
  • Developer Catalog:浏览 Developer Catalog 以选择所需的应用、服务或源到镜像构建器,然后将它添加到项目中。

    • 所有服务:浏览目录以在 OpenShift Container Platform 中发现服务。
    • Database:选择所需的数据库服务并将其添加到应用程序中。
    • Operator Backed:选择和部署所需的 Operator 管理服务。
    • Helm Chart:选择所需的 Helm Chart 来简化应用程序和服务部署。
    • Event Source :选择一个事件源,以注册对特定系统中某一类事件的兴趣。

      注意

      如果安装了 RHOAS Operator,也可使用 Managed services 选项。

  • Git 存储库:使用 From GitFrom DevfileFrom Dockerfile 选项分别从您的 Git 存储库中导入一个存在的 codebase、Devfile 或 Dockerfile,以在 OpenShift Container Platform 上构建和部署一个应用程序。
  • Container Image:使用镜像流或 registry 中的现有镜像,将其部署到 OpenShift Container Platform 中。
  • Pipelines:使用 Tekton 管道为 OpenShift Container Platform 上的软件交付过程创建 CI/CD 管道。
  • Serverless:探索 Serverless 选项,在 OpenShift Container Platform 中创建、构建和部署无状态和无服务器应用程序。

    • 频道 :创建一个 Knative 频道,以创建带有内存中和可靠实现的事件转发和持久层。
  • 示例:探索可用的示例应用程序,以快速创建、构建和部署应用程序。
  • From Local Machine:通过 From Local Machine 标题导入或上传在您的本地机器中的文件用于更方便地构建并部署应用程序。

    • 导入 YAML:上传 YAML 文件,以创建并定义用于构建和部署应用程序的资源。
    • 上传 JAR 文件:上传 JAR 文件以构建和部署 Java 应用。

请注意,特定的选项,如 PipelinesEvent SourceImport Virtual Machines 只在 OpenShift Pipelines OperatorOpenShift Serverless OperatorOpenShift Virtualization Operator 被安装时才会显示。

2.1.1. 先决条件

要使用 Developer 视角创建应用程序,请确认以下几项:

除以上所要求外,要创建无服务器应用程序,请确保:

2.1.2. 创建抽样应用程序

您可以使用 Developer 视角的 +Add 流中的基本示例应用程序来快速创建、构建和部署应用程序。

以下流程解释了 Developer 视角中的 Samples 选项以创建示例应用程序。

流程

  1. +Add 视图中,点 Samples 标题查看 Samples 页面。
  2. Samples 页面中,选择一个可用的示例应用程序来查看 Create Sample Application 表单。
  3. Create Sample Application Form 中:

    • Name 字段中,部署名称会被默认显示。您可以根据需要修改此名称。
    • Builder Image Version 中,会默认选择一个构建器镜像。您可以使用 Builder Image Version 下拉列表修改此镜像版本。
    • 默认添加 Git 存储库 URL 示例。
  4. Create 创建示例应用程序。示例应用程序的构建状态显示在 Topology 视图中。创建示例应用程序后,您可以看到添加到应用程序的部署。

2.1.3. 从 Git 导入代码库来创建应用程序

您可以在 Developer 视角中,使用 GitHub 中的现有代码库,在 OpenShift Container Platform 中创建、构建和部署应用程序。

以下流程逐步指导您在 Developer 视角中使用 Import from Git 选项来创建应用程序。

流程

  1. +Add 视图中,点 Git Repository 标题中的 From Git 来查看 Import from git 表单。
  2. Git 部分中,输入您要用来创建应用程序的代码库的 Git 存储库 URL。例如,输入此示例 Node.js 应用程序的 URL https://github.com/sclorg/nodejs-ex。这个 URL 随后会被验证。
  3. 可选:点 Show Advanced Git Options 来添加详情,例如:

    • git Reference,指向特定的分支、标签或提交中的代码,以用于构建应用程序。
    • Context Dir,指定要用来构建应用程序的应用程序源代码的子目录。
    • Source Secret,创建一个具有用来从私有存储库拉取源代码的凭证的 Secret Name
  4. 可选:您可以通过 Git 存储库导入 devfile、Dockerfile 或构建器镜像来进一步自定义部署。

    • 如果您的 Git 存储库包含 devfile、Dockerfile 或构建器镜像,它会被自动检测并填充到相应的路径字段中。如果同一存储库中检测到 devfile、Dockerfile 和构建器镜像,则默认选择 devfile。
    • 若要编辑文件导入类型并选择不同的策略,请单击 Edit import strategy 选项。
    • 如果检测到多个 devfile、Dockerfile 或构建器镜像,以导入特定的 devfile、Dockerfile 或构建器镜像,请指定与上下文目录相关的相应路径。
  5. 在验证 Git URL 后,会选择建议的构建器镜像并标记为星号。如果构建器镜像没有自动探测到,请选择一个构建器镜像。对于 https://github.com/sclorg/nodejs-ex Git URL,默认选择了 Node.js 构建器镜像。

    1. 可选: 使用 Builder Image Version 下拉菜单指定版本。
    2. 可选: 使用 Edit import 策略来选择不同的策略。
  6. General 部分中:

    1. Application 字段中输入应用程序组别的唯一名称,例如 myapp。确保应用程序名称在命名空间中具有唯一性。
    2. 系统会基于 Git 存储库的 URL 自动填充 Name 字段,以标识为此应用程序创建的资源(如果没有存在的应用程序)。如果已有应用程序,可以选择将组件部署到现有应用程序中,创建一个新应用程序,或保持该组件没有被分配。

      注意

      资源名称必须在命名空间中具有唯一性。如果遇到错误,请修改资源名称。

  7. Resources 部分,选择:

    • Deployment,以纯 Kubernetes 风格方式创建应用程序。
    • Deployment Config,创建 OpenShift Container Platform 风格的应用程序。
    • Serverless Deployment,创建 Knative 服务。
    注意

    只有集群中安装了 OpenShift Serverless Operator 时,Import from git 表单中才会显示 Serverless Deployment 选项。详情请参考 OpenShift Serverless 文档。

  8. Pipelines 部分,选择 Add Pipeline,然后点 Show Pipeline Visualization 来查看应用程序的管道。
  9. Advanced Options 部分中默认选中 Create a route to the application,以便您可以使用公开的 URL 访问应用程序。如果不想通过公共路由公开您的应用程序,可以清除此复选框。
  10. 可选:可以使用以下高级选项进一步自定义应用程序:

    路由

    点击 Routing 链接,以执行以下操作:

    • 自定义路由的主机名。
    • 指定路由器监控的路径。
    • 从下拉列表中选择流量的目标端口。
    • 选中 Secure Route 复选框来保护您的路由。从相应的下拉列表中,选择所需的 TLS 终止类型,并设置非安全流量的策略。

      对于无服务器应用程序,Knative 服务管理上述所有路由选项。但在需要时,您可以自定义流量的目标端口。如果不指定目标端口,则使用默认端口 8080

    域映射

    如果要创建 Serverless Deployment,您可以在创建过程中添加自定义域映射到 Knative 服务。

    • Advanced options 部分中,点 Show advanced Routing options

      • 如果要映射到该服务的域映射 CR 已存在,您可以从 Domain mapping 下拉菜单中选择它。
      • 如果要创建新域映射 CR,在框中输入域名,然后选择 Create 选项。例如,如果您在 example.com 中 键入,则 Create 选项 为 Create "example.com"。
    健康检查

    点击 Health Checks 链接为您的应用程序添加就绪(Readiness)、存活(Liveness)和启动(Startup)探测。所有探测都预先填充默认数据; 您可以使用默认数据添加探测或根据需要进行自定义。

    自定义健康探测:

    • Add Readiness Probe,在需要的情况下修改参数来检查容器是否准备好处理请求,然后选择要添加的探测。
    • Add Liveness Probe,在需要的情况下修改参数来检查容器是否仍在运行,选择要添加的探测。
    • Add Startup Probe,在需要的情况下修改参数来检查容器内的应用程序是否已启动,选择要添加的探测。

      对于每个探测,您可以从下拉列表中指定请求类型 - HTTP GETContainer CommandTCP Socket。表单会根据所选请求类型进行更改。然后您可以修改其它参数的默认值,如探测成功和失败的阈值、在容器启动后执行第一个探测前的秒数、探测的频率以及超时值。

    构建配置和部署

    Build ConfigurationDeployment Configuration 链接来查看对应的配置选项。一些选项会被默认选中;您可以通过添加必要的触发器和环境变量来进一步自定义。

    对于无服务器应用程序,Deployment 选项不会显示,因为 Knative 配置资源为您的部署维护所需的状态,而不是 DeploymentConfig 资源。

    扩展

    点击 Scaling 链接,以定义您要初始部署的应用程序的 pod 数或实例数。

    对于无服务器应用程序,可以:

    • autoscaler 可设置的 Pod 数设定上限和下限。如果不指定下限,则默认为零。
    • 定义给定时间上每个应用程序实例所需的并发请求数的软限值。它是自动扩展的推荐配置。如果不指定,它将使用集群配置中指定的值。
    • 定义给定时间上每个应用程序实例的并发请求数的硬限值。这在修订模板中进行配置。如果不指定,则默认为集群配置中指定的值。
    资源限值
    点击 Resource Limit 链接,设置容器在运行时保证或允许使用的 CPUMemory 资源的数量。
    标签
    点击 Labels 链接,为您的应用程序添加自定义标签。
  11. 点击 Create,以创建应用程序并在 Topology 视图中查看其构建状态。

2.1.4. 上传 JAR 文件以轻松部署 Java 应用程序

您可以使用 Developer 视角的 Topology 视图中的 JAR 文件来部署 Java 应用程序。您可以使用以下选项上传 JAR 文件:

  • 导航到 Developer 视角+Add 视图,再单击 From Local Machine 标题中的 Upload JAR 文件。浏览并选择您的 JAR 文件,或者拖放 JAR 文件以部署您的应用。
  • 进入 Topology 视图并使用 Upload JAR 文件 选项,或者拖放 JAR 文件来部署应用程序。
  • 使用 Topology 视图中的 in-context 菜单,然后使用 Upload JAR 文件选项上传 JAR 文件以部署应用程序。

使用以下说明在 Topology 视图中上传 JAR 文件来部署 Java 应用程序:

流程

  1. Topology 视图中,右键单击 Topology 视图中的任意位置,以查看 Add to Project 菜单。
  2. 将鼠标悬停在 Add to Project 菜单上,以查看菜单选项,然后选择 Upload JAR 文件选项以查看 Upload JAR 文件表单。或者,您可以在 Topology 视图中拖放 JAR 文件。
  3. JAR 文件字段中,浏览本地计算机上所需的 JAR 文件并上传该文件。或者,您可以将 JAR 文件拖放到字段。如果将不兼容的文件类型拖放到 Topology 视图中,则右上角会显示一个警报。如果上传表单的字段中丢弃了不兼容的文件类型,则会显示字段错误。
  4. 您可以进一步指定可选的 Java 命令来自定义部署的应用程序。默认选择 Runtime Icon 和 Builder Image。如果没有自动探测到构建器镜像,请选择一个构建器镜像。如果需要,您可以使用 Builder Image Version 下拉列表来更改版本。
  5. 在可选的 Application Name 字段中输入应用程序的唯一名称作为资源标记。
  6. Name 字段中输入唯一组件名称来命名关联的资源。
  7. Resources 字段中,为您的应用程序选择资源类型。
  8. Advanced options 中,点 Create a Route to the Application 配置您部署的应用程序的公共 URL。
  9. 单击 Create 以部署应用。用户会看到一个切换通知,通知 JAR 文件正在上传,这个过程会花费一段时间。相关通知还包括用于查看构建日志的链接。

    注意

    如果用户尝试在构建运行时关闭浏览器标签页,系统会显示一个 Web 警报,询问用户是否真正想离开页面。

上传 JAR 文件并部署应用后,您可以在 Topology 视图中看到部署。

2.1.5. 使用 Developer Catalog 将服务或组件添加到应用程序中

您可以使用 Developer Catalog 根据 Operator 支持的服务(如数据库、构建器镜像和 Helm Charts)部署应用程序和服务。Developer Catalog 包含您可以添加到项目的应用程序组件、服务、事件源或 Source-to-image 构建器的集合。集群管理员可以自定义目录中提供的内容。

流程

  1. Developer 视角中,导航到 +Add 视图,从 Developer Catalog 标题中点击 All Services 来查看 Developer Catalog 中的所有可用服务。
  2. All Services 下,选择服务类型或您需要添加到项目的组件。在本例中,选择 Databases 以列出所有数据库服务,然后点击 MariaDB 查看该服务的详情。
  3. Instantiate Template 查看带有 MariaDB 服务详情的自动填充的模板,然后点 CreateTopology 视图中创建并查看 MariaDB 服务的信息。

    图 2.1. Topology 中的 MariaDB

    ODC devcatalog toplogy