2.5. 使用 odo 创建单组件应用程序

使用 odo,您可以在集群中从创建和部署应用程序。

2.5.1. 先决条件

  • 已安装了 odo
  • 有一个正在运行的集群。您可以使用 CodeReady Containers (CRC) 来快速部署一个本地的集群。

2.5.2. 创建一个项目

创建一个项目来在一个独立的空间内保存源代码、测试并对库进行管理。

流程

  1. 登陆到一个OpenShift Container Platform集群。

    $ odo login -u developer -p developer
  2. 创建一个项目:

    $ odo project create myproject
     ✓  Project 'myproject' is ready for use
     ✓  New project created and now using project : myproject

2.5.3. 使用 odo 创建 Node.js 应用程序

要创建一个 Node.js 组件,请下载 Node.js 应用程序并使用 odo将源代码推送到您的集群中。

流程

  1. 为您的组件创建一个新目录:

    $ mkdir my_components $$ cd my_components
  2. 下载示例 Node.js 应用程序:

    $ git clone https://github.com/openshift/nodejs-ex
  3. 将当前目录变为您的应用程序的目录:

    $ cd <directory_name>
  4. 将类型 Node.js 的组件添加到应用程序中:

    $ odo create nodejs
    注意

    默认情况下使用最新的镜像。也可以使用 odo create openshift/nodejs:8 明确指定一个镜像版本。

  5. 将初始源代码推送到组件中:

    $ odo push

    现在,您的组件已被部署到 OpenShift Container Platform 中。

  6. 创建一个 URL,按以下方法在本地配置文件中添加条目:

    $ odo url create --port 8080
  7. 推送更改。这会在集群中创建一个 URL。

    $ odo push
  8. 列出用于检查组件所需 URL 的 URL。

    $ odo url list
  9. 使用生成的 URL 查看部署的应用程序。

    $ curl <url>

2.5.4. 修改应用程序代码

您可以修改应用程序代码,并将更改应用于 OpenShift Container Platform 上的应用程序。

  1. 使用文本编辑器编辑 Node.js 目录中的一个布局文件。
  2. 更新您的组件:

    $ odo push
  3. 刷新浏览器中的应用程序查看更改。

2.5.5. 在应用程序组件中添加存储

持久性存储会保留 odo 重启期间的数据。您可以使用 odo storage 命令在组件中添加存储。

流程

  • 在组件中添加存储:

    $ odo storage create nodestorage --path=/opt/app-root/src/storage/ --size=1Gi

您的组件现在有 1 GB 存储。

2.5.6. 添加自定义构建者来指定构建镜像

在 OpenShift Container Platform 中,您可以添加自定义镜像来缩小创建自定义镜像间的差距。

以下示例显示 redhat-openjdk-18 镜像已被成功导入并使用:

先决条件

  • 安装了 OpenShift CLI (oc) 。

流程

  1. 将镜像导入 OpenShift Container Platform:

    $ oc import-image openjdk18 \
    --from=registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift \
    --confirm
  2. 标记(tag)镜像使其可以被 odo 访问:

    $ oc annotate istag/openjdk18:latest tags=builder
  3. 使用 odo 部署镜像:

    $ odo create openjdk18 --git \
    https://github.com/openshift-evangelists/Wild-West-Backend

2.5.7. 使用 OpenShift Service Catalog 将应用程序连接到多个服务

OpenShift Service Catalog 是 Kubernetes 的 Open Service Broker API (OSB API) 的一个实现。您可以使用它将部署在 OpenShift Container Platform 中的应用程序连接到各种服务。

先决条件

  • 有一个正在运行的 OpenShift Container Platform 集群。
  • 在集群中安装并启用该 service catalog。

流程

  • 要列出服务,请使用:

    $ odo catalog list services
  • 要使用 service catalog 相关的操作:

    $ odo service <verb> <service_name>

2.5.8. 删除应用程序

重要

删除应用程序将删除与应用程序关联的所有组件。

流程

  1. 列出当前项目中的应用程序:

    $ odo app list
        The project '<project_name>' has the following applications:
        NAME
        app
  2. 列出与应用程序关联的组件。这些组件将随应用程序一起删除:

    $ odo component list
        APP     NAME                      TYPE       SOURCE        STATE
        app     nodejs-nodejs-ex-elyf     nodejs     file://./     Pushed
  3. 删除应用程序:

    $ odo app delete <application_name>
        ? Are you sure you want to delete the application: <application_name> from project: <project_name>
  4. 使用 Y 确认删除。您可以使用 -f 标记来阻止确认提示。