2.5. odo を使用した単一コンポーネントアプリケーションの作成

odo を使用すると、OpenShift Container Platform クラスターでアプリケーションを作成し、デプロイできます。

2.5.1. 前提条件

  • odo がインストールされている。
  • OpenShift Container Platform クラスターが実行中である。CodeReady Containers (CRC) を使用して、OpenShift Container Platform のローカルクラスターを迅速にデプロイできます。

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. イメージにタグを付け、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 サービスカタログは、Kubernetes 用の Open Service Broker API (OSB API) の実装です。これを使用すると、OpenShift Container Platform にデプロイされているアプリケーションをさまざまなサービスに接続できます。

前提条件

  • OpenShift Container Platform クラスターが実行中である。
  • サービスカタログがクラスターにインストールされ、有効にされている。

手順

  • サービスを一覧表示するには、以下を使用します。

    $ odo catalog list services
  • サービスカタログ関連の操作を使用するには、以下を実行します。

    $ odo service <verb> <servicename>

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 フラグを使用すると、確認プロンプトを非表示にできます。