第 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 来简化应用程序和服务部署。
请注意,特定的选项,如 Pipelines、Event Source 和 Import Virtual Machines 只在 OpenShift Pipelines Operator、OpenShift Serverless Operator 和 OpenShift Virtualization Operator 被安装时才会显示。
3.1.1. 先决条件
要使用 Developer 视角创建应用程序,请确认以下几项:
- 已登陆到 web 控制台。
- 您已创建了一个项目,或者具有适当的角色和权限访问项目,以便在 OpenShift Container Platform 中创建应用程序和其他工作负载。
除以上所要求外,要创建无服务器应用程序,请确保:
3.1.2. 创建抽样应用程序
您可以使用 Developer 视角的 +Add 流中的基本示例应用程序来快速创建、构建和部署应用程序。
以下流程解释了 Developer 视角中的 Samples 选项以创建示例应用程序。
流程
- 在 +Add 视图中,点 Samples 查看 Samples 页面。
- 在 Samples 页面中,选择一个可用的示例应用程序来查看 Create Sample Application 表单。
在 Create Sample Application Form 中:
- 在 Name 字段中,部署名称会被默认显示。您可以根据需要修改此名称。
- 在 Builder Image Version 中,会默认选择一个构建器镜像。您可以使用 Builder Image Version 下拉列表修改此镜像版本。
- 默认添加 Git 存储库 URL 示例。
- 点 Create 创建示例应用程序。示例应用程序的构建状态显示在 Topology 视图中。创建示例应用程序后,您可以看到添加到应用程序的部署。
3.1.3. 从 Git 导入代码库来创建应用程序
您可以在 Developer 视角中,使用 GitHub 中的现有代码库,在 OpenShift Container Platform 中创建、构建和部署应用程序。
以下流程逐步指导您在 Developer 视角中使用 Import from Git 选项来创建应用程序。
流程
- 在 +Add 视图中,点击 From Git 以查看 Import from git 表单。
-
在 Git 部分中,输入您要用来创建应用程序的代码库的 Git 存储库 URL。例如,输入此示例 Node.js 应用程序的 URL
https://github.com/sclorg/nodejs-ex
。这个 URL 随后会被验证。 可选:点 Show Advanced Git Options 来添加详情,例如:
- git Reference,指向特定的分支、标签或提交中的代码,以用于构建应用程序。
- Context Dir,指定要用来构建应用程序的应用程序源代码的子目录。
- Source Secret,创建一个具有用来从私有存储库拉取源代码的凭证的 Secret Name。
-
在 Builder 部分,当验证 URL 后,会检测到一个适当的构建器镜像,由一个星号指示,并自动选择。对于
https://github.com/sclorg/nodejs-ex
Git URL,默认选择 Node.js 构建器镜像。如果构建器镜像没有自动探测到,请选择一个构建器镜像。如果需要,您可以使用 Builder Image Version 下拉列表来更改版本。 在 General 部分中:
-
在 Application 字段中输入应用程序组别的唯一名称,例如
myapp
。确保应用程序名称在命名空间中具有唯一性。 系统会基于 Git 存储库的 URL 自动填充 Name 字段,以标识为此应用程序创建的资源(如果没有存在的应用程序)。如果已有应用程序,可以选择将组件部署到现有应用程序中,创建一个新应用程序,或保持该组件没有被分配。
注意资源名称必须在命名空间中具有唯一性。如果遇到错误,请修改资源名称。
-
在 Application 字段中输入应用程序组别的唯一名称,例如
在 Resources 部分,选择:
- Deployment,以纯 Kubernetes 风格方式创建应用程序。
- Deployment Config,创建 OpenShift 风格的应用程序。
- Knative Service,创建微服务。
注意只有集群中安装了 Serverless Operator 时,Import from git 表单中才会显示 Knative Service 部分。如需进一步了解详细信息,请参阅有关安装 OpenShift Serverless 的文档。
- 在 Pipelines 部分,选择 Add Pipeline,然后点 Show Pipeline Visualization 来查看应用程序的管道。
- Advanced Options 部分中默认选中 Create a route to the application,以便您可以使用公开的 URL 访问应用程序。如果不想通过公共路由公开您的应用程序,可以清除此复选框。
- 可选:可以使用以下高级选项进一步自定义应用程序:
- 路由
点击 Routing 链接,您可以执行以下操作:
- 自定义路由的主机名。
- 指定路由器监控的路径。
- 从下拉列表中选择流量的目标端口。
选中 Secure Route 复选框来保护您的路由。从相应的下拉列表中,选择所需的 TLS 终止类型,并设置非安全流量的策略。
注意对于无服务器应用程序,Knative 服务管理上述所有路由选项。但在需要时,您可以自定义流量的目标端口。如果不指定目标端口,则使用默认端口
8080
。
- 健康检查
点击 Health Checks 链接为您的应用程序添加就绪(Readiness)、存活(Liveness)和启动(Startup)探测。所有探测都预先填充默认数据; 您可以使用默认数据添加探测或根据需要进行自定义。
自定义健康探测:
- 点 Add Readiness Probe,在需要的情况下修改参数来检查容器是否准备好处理请求,然后选择要添加的探测。
- 点 Add Liveness Probe,在需要的情况下修改参数来检查容器是否仍在运行,选择要添加的探测。
点 Add Startup Probe,在需要的情况下修改参数来检查容器内的应用程序是否已启动,选择要添加的探测。
对于每个探测,您可以从下拉列表中指定请求类型 - HTTP GET、Container Command 或 TCP Socket。表单会根据所选请求类型进行更改。然后您可以修改其它参数的默认值,如探测成功和失败的阈值、在容器启动后执行第一个探测前的秒数、探测的频率以及超时值。
- 构建配置和部署
点 Build Configuration 和 Deployment Configuration 链接来查看对应的配置选项。一些选项会被默认选中;您可以通过添加必要的触发器和环境变量来进一步自定义。
对于无服务器应用程序,Deployment 选项不会显示,因为 Knative 配置资源为您的部署维护所需的状态,而不是由 DeploymentConfig 来维护。
- 扩展
点击 Scaling 链接,以定义您要初始部署的应用程序的 pod 数或实例数。
如果要创建 Knative 服务,还可以配置以下设置:
- autoscaler 可设置的 Pod 数设定上限和下限。如果不指定下限,则默认为零。
- 定义给定时间上每个应用程序实例所需的并发请求数的软限值。它是自动扩展的推荐配置。如果不指定,它将使用集群配置中指定的值。
- 定义给定时间上每个应用程序实例的并发请求数的硬限值。这在修订模板中进行配置。如果不指定,则默认为集群配置中指定的值。
- 资源限值
- 点击 Resource Limit 链接,设置容器在运行时保证或允许使用的 CPU 和 Memory 资源的数量。
- 标签
点击 Labels 链接,为您的应用程序添加自定义标签。
- 点击 Create,以创建应用程序并在 Topology 视图中查看其构建状态。
3.1.4. 使用 Developer Catalog 将服务或组件添加到应用程序中
您可以使用 Developer Catalog 根据 Operator 支持的服务(如数据库、构建器镜像和 Helm Charts)部署应用程序和服务。Developer Catalog 包含您可以添加到项目的应用程序组件、服务、事件源或 Source-to-image 构建器的集合。集群管理员可以自定义目录中提供的内容。
流程
-
在 Developer 视角中,导航到 +Add
From Catalog 以查看 Developer Catalog 中所有可用服务。 在 All Items 下,选择服务类型或您需要添加到项目的组件。在本例中,选择 Databases 以列出所有数据库服务,然后点击 MariaDB 查看该服务的详情。
图 3.1. 开发者目录
点 Instantiate Template 查看带有 MariaDB 服务详情的自动填充的模板,然后点 Create 在 Topology 视图中创建并查看 MariaDB 服务。
图 3.2. Topology 中的 MariaDB
3.1.5. 其他资源
- 如需有关 OpenShift Serverless 的 Knative 路由设置的更多信息,请参阅 路由。
- 如需有关 OpenShift Serverless 的 Knative 自动扩展设置的更多信息,请参阅 自动扩展。
- 有关 OpenShift Serverless 的域映射设置的详情 ,请参考 为 Knative 服务配置自定义域。