2.5. odo を使用した単一コンポーネントアプリケーションの作成
odo
を使用すると、OpenShift Container Platform クラスターでアプリケーションを作成し、デプロイできます。
2.5.1. 前提条件
-
odo
がインストールされている。 - OpenShift Container Platform クラスターが実行中である。CodeReady Containers (CRC) を使用して、OpenShift Container Platform のローカルクラスターを迅速にデプロイできます。
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
イメージにタグを付け、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 サービスカタログは、Kubernetes 用の Open Service Broker API (OSB API) の実装です。これを使用すると、OpenShift Container Platform にデプロイされているアプリケーションをさまざまなサービスに接続できます。
前提条件
- OpenShift Container Platform クラスターが実行中である。
- サービスカタログがクラスターにインストールされ、有効にされている。
手順
サービスを一覧表示するには、以下を使用します。
$ odo catalog list services
サービスカタログ関連の操作を使用するには、以下を実行します。
$ odo service <verb> <servicename>
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
フラグを使用すると、確認プロンプトを非表示にできます。