第 3 章 应用程序生命周期管理

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

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

  • From Git:使用这个选项时,可从 Git 存储库中导入现有代码库,在 OpenShift Container Platform 上创建、构建和部署应用程序。
  • Container Image:使用镜像流或 registry 中的现有镜像,将其部署到 OpenShift Container Platform 中。
  • From Dockerfile:从 Git 存储库导入 Dockerfile,以构建和部署应用程序。
  • YAML:使用编辑器添加 YAML 或 JSON 定义,以创建和修改资源。
  • From Catalog:浏览 Developer Catalog 来选择所需的应用程序、服务或 Source-to-Image 构建器,并将其添加到您的项目中。
  • Database:查看 Developer Catalog,以选择所需的数据库服务并将其添加到应用程序中。
  • Operator Backed: 浏览 Developer Catalog 来选择和部署所需的 Operator 管理服务。
  • Helm Chart: 访问 Developer Catalog 以选择所需的 Helm Chart 来简化应用程序和服务部署。

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

3.1.1. 先决条件

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

  • 登陆到 web 控制台
  • 您已创建了一个项目,或者具有适当的 角色和权限 访问项目在 OpenShift Container Platform 中创建应用程序和其他工作负载。

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

3.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 视图中。创建示例应用程序后,您可以看到添加到应用程序的部署。

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

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

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

流程

  1. +Add 视图中,点击 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. Builder 部分,当验证 URL 后,会检测到一个适当的构建器镜像,由一个星号指示,并自动选择。对于 https://github.com/sclorg/nodejs-ex Git URL,默认选择 Node.js 构建器镜像。如果构建器镜像没有自动探测到,请选择一个构建器镜像。如果需要,您可以使用 Builder Image Version 下拉列表来更改版本。
  5. General 部分中:

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

      注意

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

  6. Resources 部分,选择:

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

    只有集群中安装了 Serverless Operator 时,Import from git 表单中才会显示 Knative Service 部分。如需进一步了解详细信息,请参阅有关安装 OpenShift Serverless 的文档。

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

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

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

    注意

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

健康检查

点击 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 数或实例数。

如果要创建 Knative 服务,还可以配置以下设置:

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

点击 Labels 链接,为您的应用程序添加自定义标签。

  1. 点击 Create,以创建应用程序并在 Topology 视图中查看其构建状态。

3.1.4. 其他资源