2.5. 使用 odo 创建单组件应用程序
使用 odo
,您可以在集群中从创建和部署应用程序。
2.5.1. 先决条件
-
已安装了
odo
。 - 有一个正在运行的集群。您可以使用 CodeReady Containers (CRC) 来快速部署一个本地的集群。
2.5.2. 创建一个项目
创建一个项目来在一个独立的空间内保存源代码、测试并对库进行管理。
流程
登陆到一个OpenShift Container Platform集群。
$ odo login -u developer -p developer
创建一个项目:
$ 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
将源代码推送到您的集群中。
流程
为您的组件创建一个新目录:
$ mkdir my_components $$ cd my_components
下载示例 Node.js 应用程序:
$ git clone https://github.com/openshift/nodejs-ex
将当前目录变为您的应用程序的目录:
$ cd <directory_name>
将类型 Node.js 的组件添加到应用程序中:
$ odo create nodejs
注意默认情况下使用最新的镜像。也可以使用
odo create openshift/nodejs:8
明确指定一个镜像版本。将初始源代码推送到组件中:
$ odo push
现在,您的组件已被部署到 OpenShift Container Platform 中。
创建一个 URL,按以下方法在本地配置文件中添加条目:
$ odo url create --port 8080
推送更改。这会在集群中创建一个 URL。
$ odo push
列出用于检查组件所需 URL 的 URL。
$ odo url list
使用生成的 URL 查看部署的应用程序。
$ curl <url>
2.5.4. 修改应用程序代码
您可以修改应用程序代码,并将更改应用于 OpenShift Container Platform 上的应用程序。
- 使用文本编辑器编辑 Node.js 目录中的一个布局文件。
更新您的组件:
$ odo push
- 刷新浏览器中的应用程序查看更改。
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) 。
流程
将镜像导入 OpenShift Container Platform:
$ oc import-image openjdk18 \ --from=registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift \ --confirm
标记(tag)镜像使其可以被 odo 访问:
$ oc annotate istag/openjdk18:latest tags=builder
使用 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. 删除应用程序
删除应用程序将删除与应用程序关联的所有组件。
流程
列出当前项目中的应用程序:
$ odo app list The project '<project_name>' has the following applications: NAME app
列出与应用程序关联的组件。这些组件将随应用程序一起删除:
$ odo component list APP NAME TYPE SOURCE STATE app nodejs-nodejs-ex-elyf nodejs file://./ Pushed
删除应用程序:
$ odo app delete <application_name> ? Are you sure you want to delete the application: <application_name> from project: <project_name>
-
使用
Y
确认删除。您可以使用-f
标记来阻止确认提示。