第2章 アプリケーションの作成

2.1. Developer パースペクティブを使用したアプリケーションの作成

Web コンソールの Developer パースペクティブでは、+Add ビューからアプリケーションおよび関連サービスを作成し、それらを OpenShift Container Platform にデプロイするための以下のオプションが提供されます。

  • リソースの使用: 開発者コンソールを使い始めるには、これらのリソースを使用します。Options メニュー kebab を使用してヘッダーを非表示にすることができます。

    • サンプルを使用したアプリケーションの作成: 既存のコードサンプルを使用して、OpenShift Container Platform でアプリケーションの作成を開始します。
    • ガイド付きドキュメントを使用してビルド: ガイド付きドキュメントを参照してアプリケーションを構築し、主なコンセプトや用語に慣れてください。
    • 新規開発者機能の確認: Developer パースペクティブの新機能およびリソースを紹介します。
  • Developer catalog: Developer Catalog で、イメージビルダーに必要なアプリケーション、サービス、またはソースを選択し、プロジェクトに追加します。

    • All Services: カタログを参照し、OpenShift Container Platform 全体でサービスを検出します。
    • Database: 必要なデータベースサービスを選択し、アプリケーションに追加します。
    • Operator Backed: 必要な Operator 管理サービスを選択し、デプロイします。
    • Helm Chart: 必要な Helm チャートを選択し、アプリケーションおよびサービスのデプロイメントを単純化します。
    • イベントソース特定のシステムからのイベントのクラスに関心を登録するために、イベントソースを選択します。

      注記

      RHOAS Operator がインストールされている場合には、マネージドサービスオプションも利用できます。

  • Git repository: From GitFrom Devfile または From Dockerfile オプションを使用して Git リポジトリーから既存のコードベース、Devfile、または Dockerfile をインポートし、OpenShift Container Platform でアプリケーションをビルドしてデプロイします。
  • Container Image: イメージストリームまたはレジストリーからの既存イメージを使用し、これを OpenShift Container Platform にデプロイします。
  • Pipelines: Tekton パイプラインを使用して OpenShift Container Platform でソフトウェア配信プロセスの CI/CD パイプラインを作成します。
  • Serverless: Serverless オプションを検査して、OpenShift Container Platform でステートレスおよびサーバーレスアプリケーションを作成、ビルド、デプロイします。

    • チャンネルです。Knative社のチャンネルを作成し、インメモリーで信頼性の高い実装でイベントの転送と永続化のレイヤーを作成します。
  • Samples: 利用可能なサンプルアプリケーションを確認して、アプリケーションをすばやく作成、ビルド、デプロイします。
  • From Local Machine: From Local Machine タイルを確認して、ローカルマシンのファイルをインポートまたはアップロードし、簡単にアプリケーションをビルドしてデプロイします。

    • Import YAML: YAML ファイルをアップロードし、アプリケーションをビルドしてデプロイするためのリソースを定義します。
    • Upload JAR file: JAR ファイルをアップロードして Java アプリケーションをビルドおよびデプロイします。

PipelinesEvent Source、および Import Virtual Machines などの特定のオプションは、OpenShift Pipelines OperatorOpenShift Serverless Operator、および OpenShift Virtualization Operator がインストールされる場合にのみそれぞれ表示されることに注意してください。

2.1.1. 前提条件

Developer パースペクティブを使用してアプリケーションを作成するには、以下を確認してください。

前述の前提条件に加えてサーバーレスアプリケーションを作成するには、以下を確認します。

2.1.2. サンプルアプリケーションの作成

Developer パースペクティブの +Add フローで基本的なサンプルアプリケーションを使用し、アプリケーションをすぐに作成し、ビルドし、デプロイできます。

以下の手順では、サンプルアプリケーションを作成するための Developer パースペクティブの Samples オプションについて説明します。

手順

  1. +Add ビューで、Samples タイルをクリックし、Samples ページを表示します。
  2. Samples ページで、利用可能なサンプルアプリケーションの 1 つを選択し、Create Sample Application フォームを表示します。
  3. Create Sample Application Form:

    • Name フィールドには、デフォルトでデプロイメント名が表示されます。この名前は必要に応じて変更することができます。
    • Builder Image Version では、ビルダーイメージがデフォルトで選択されます。Builder Image Version ドロップダウンリストを使用してイメージバージョンを変更できます。
    • Git リポジトリー URL のサンプルは、デフォルトで追加されます。
  4. Create をクリックしてサンプルアプリケーションを作成します。サンプルアプリケーションのビルドステータスが Topology ビューに表示されます。サンプルアプリケーションの作成後、デプロイメントがアプリケーションに追加されていることを確認できます。

2.1.3. Git のコードベースのインポートおよびアプリケーションの作成

Developer パースペクティブを使用し、GitHub で既存のコードベースを使用して OpenShift Container Platform でアプリケーションを作成し、ビルドし、デプロイすることができます。

以下の手順では、Developer パースペクティブの From Git オプションを使用してアプリケーションを作成します。

手順

  1. +Add ビューで、Git Repository タイルの From Git をクリックし、Import from git フォームを表示します。
  2. Git セクションで、アプリケーションの作成に使用するコードベースの Git リポジトリー URL を入力します。たとえば、このサンプル nodejs アプリケーションの URL https://github.com/sclorg/nodejs-ex を入力します。その後、URL は検証されます。
  3. オプション: Show Advanced Git Options をクリックし、以下のような詳細を追加できます。

    • Git Reference: アプリケーションのビルドに使用する特定のブランチ、タグ、またはコミットのコードを参照します。
    • Context Dir: アプリケーションのビルドに使用するアプリケーションのソースコードのサブディレクトリーを指定します。
    • Source Secret: プライベートリポジトリーからソースコードをプルするための認証情報で Secret Name を作成します。
  4. オプション: Git リポジトリーを使用して devfile、Dockerfile、またはビルダーイメージをインポートして、デプロイメントをさらにカスタマイズできるようになりました。

    • Git リポジトリーに devfile、Dockerfile、またはビルダーイメージが含まれる場合には、これらは自動的に検出され、それぞれのパスフィールドに設定されます。devfile、Dockerfile、およびビルダーイメージが同じリポジトリーで検出されると、devfile はデフォルトで選択されます。
    • ファイルのインポートタイプを編集して、別のストラテジーを選択し、Edit import strategy オプションをクリックします。
    • 複数の devfile、Dockerfile、またはビルダーイメージを検出された場合に、特定の devfile、Dockerfile、またはビルダーイメージをインポートするにはコンテキストディレクトリーを起点とした相対パスを指定します。
  5. Git URL の検証後に、推奨されるビルダーイメージが選択されて星マークが付けられます。ビルダーイメージが自動検出されていない場合は、ビルダーイメージを選択します。https://github.com/sclorg/nodejs-ex Git URL の場合、Node.js ビルダーイメージがデフォルトで選択されます。

    1. オプション:Builder Image Version ドロップダウンリストを使用してバージョンを指定します。
    2. オプション:Edit import strategy を使用して、別のストラテジーを選択します。
  6. General セクションで、以下を実行します。

    1. Application フィールドに、アプリケーションを分類するために一意の名前 (myapp など) を入力します。アプリケーション名が namespace で一意であることを確認します。
    2. Name フィールドで、既存のアプリケーションが存在しない場合に、このアプリケーション用に作成されたリソースが Git リポジトリー URL をベースとして自動的に設定されることを確認します。既存のアプリケーションがある場合には、既存のアプリケーション内でそのコンポーネントをデプロイしたり、新しいアプリケーションを作成したり、またはコンポーネントをいずれにも割り当てない状態にしたりすることができます。

      注記

      リソース名は namespace で一意である必要があります。エラーが出る場合はリソース名を変更します。

  7. Resources セクションで、以下を選択します。

    • Deployment: 単純な Kubernetes スタイルのアプリケーションを作成します。
    • Deployment Config: OpenShift Container Platform スタイルのアプリケーションを作成します。
    • Knative Service: マイクロサービスを作成します。
    注記

    Knative Service オプションは、Serverless Operator がクラスターにインストールされている場合にのみ、Import from git 形式で表示されます。詳細は、OpenShift Serverless のインストールについてのドキュメントを参照してください。

  8. Pipelines セクションで、 Add Pipeline を選択してから Show Pipeline Visualization をクリックし、アプリケーションのパイプラインを表示します。
  9. Advanced Options セクションでは、Create a route to the application がデフォルトで選択されるため、公開されている URL を使用してアプリケーションにアクセスできます。アプリケーションをパブリックルートに公開したくない場合は、チェックボックスをクリアできます。
  10. オプション: 以下の高度なオプションを使用してアプリケーションをさらにカスタマイズできます。

    ルーティング

    Routing リンクをクリックして、以下を実行します。

    • ルートのホスト名をカスタマイズします。
    • ルーターが監視するパスを指定します。
    • ドロップダウンリストから、トラフィックのターゲットポートを選択します。
    • Secure Route チェックボックスを選択してルートを保護します。必要な TLS 終端タイプを選択し、各ドロップダウンリストから非セキュアなトラフィックについてのポリシーを設定します。

      サーバーレスアプリケーションでは、Knativeサービスが上記のすべてのルーティングオプションを管理します。ただし、必要に応じて、トラフィックのターゲットポートをカスタマイズできます。ターゲットポートが指定されていない場合、デフォルトポートの 8080 が使用されます。

    ヘルスチェック

    Health Checks リンクをクリックして、Readiness、Liveness、および Startup プローブをアプリケーションに追加します。すべてのプローブに事前に設定されたデフォルトデータが実装され、必要に応じてデフォルトデータでプローブを追加したり、必要に応じてこれをカスタマイズしたりできます。

    ヘルスプローブをカスタマイズするには、以下を実行します。

    • Add Readiness Probe をクリックし、必要に応じてコンテナーが要求を処理する準備ができているかどうかを確認するためにパラメーターを変更し、チェックマークを選択してプローブを追加します。
    • Add Liveness Probe をクリックし、必要に応じてコンテナーが実行中かどうかを確認するためにパラメーターを変更し、チェックマークを選択してプローブを追加します。
    • Add Startup Probe をクリックし、必要に応じてコンテナー内のアプリケーションが起動しているかどうかを確認するためにパラメーターを変更し、チェックマークを選択してプローブを追加します。

      それぞれのプローブについて、ドロップダウンリストから要求タイプ (HTTP GETContainer CommandTCP Socket) を指定できます。選択した要求タイプに応じてフォームが変更されます。次に、プローブの成功および失敗のしきい値、コンテナーの起動後の最初のプローブ実行までの秒数、プローブの頻度、タイムアウト値など、他のパラメーターのデフォルト値を変更できます。

    ビルド設定およびデプロイメント

    Build Configuration および Deployment リンクをクリックして、それぞれの設定オプションを表示します。オプションの一部はデフォルトで選択されています。必要なトリガーおよび環境変数を追加して、オプションをさらにカスタマイズできます。

    サーバーレス・アプリケーションの場合、DeploymentConfigリソースではなく、Knativeの構成リソースがデプロイに必要な状態を維持するため、Deploymentオプションは表示されません。

    スケーリング

    Scaling リンクをクリックして、最初にデプロイするアプリケーションの Pod 数またはインスタンス数を定義します。

    サーバーレスアプリケーションの場合、以下を実行できます。

    • Autoscaler で設定できる Pod 数の上限および下限を設定します。下限が指定されない場合は、デフォルトでゼロに設定されます。
    • 指定された時点でのアプリケーションインスタンスごとに必要な同時要求数のソフト制限を定義します。自動スケーリングの推奨設定です。指定されていない場合は、クラスター設定で指定した値を使用します。
    • 指定された時点でのアプリケーションインスタンスごとに許可される同時要求数のハード制限を定義します。これは、リビジョンテンプレートで設定されます。指定されていない場合、デフォルトでクラスター設定で指定された値に設定されます。
    リソースの制限
    Resource Limit リンクをクリックして、コンテナーが実行時に保証または使用が許可されている CPU および メモリー リソースの量を設定します。
    ラベル
    Labels リンクをクリックして、カスタムラベルをアプリケーションに追加します。
  11. Create をクリックして、アプリケーションを作成し、Topology ビューでビルドのステータスを確認します。

2.1.4. Java アプリケーションのデプロイメントを容易にする JAR ファイルのアップロード

Developer パースペクティブの Topology ビューで JAR ファイルを使用して、Java アプリケーションをデプロイできます。以下のオプションを使用して JAR ファイルをアップロードできます。

  • Developer パースペクティブの +Add ビューに移動し、From Local Machine タイルで Upload JAR file をクリックします。JAR ファイルを参照および選択するか、または JAR ファイルをドラッグアンドドロップしてアプリケーションをデプロイします。
  • Topology ビューに移動し、Upload JAR file オプションを使用して、JAR ファイルをドラッグアンドドロップしてアプリケーションをデプロイします。
  • Topology ビューのコンテキストメニューで Upload JAR file オプションを使用して JAR ファイルをアップロードしてアプリケーションをデプロイします。

以下の手順に従って、Topology ビューで JAR ファイルをアップロードし、Java アプリケーションをデプロイします。

手順

  1. Topology ビューで、Topology ビューの任意の場所を右クリックし、Add to Project メニューを表示します。
  2. Add to Project メニューにカーソルを置いてメニューオプションを表示し、Upload JAR ファイルオプションを選択し、 Upload JAR file オプションを選択して Upload JAR file フォームを確認します。または、Topology ビューで JAR ファイルをドラッグアンドドロップすることもできます。
  3. JAR file フィールドで、ローカルマシンで必要な JAR ファイルを参照し、これをアップロードします。または、JAR ファイルをフィールドにドラッグアンドドロップすることもできます。互換性のないファイルタイプが Topology ビューでドラッグアンドドロップされると、トーストアラートが右側に表示されます。互換性のないファイルタイプがアップロードフォームのフィールドにドロップされると、フィールドエラーが表示されます。
  4. オプションの Java コマンドをさらに指定して、デプロイされたアプリケーションをカスタマイズできます。ランタイムアイコンおよびビルダーイメージはデフォルトで選択されます。ビルダーイメージが自動検出されていない場合は、ビルダーイメージを選択します。必要に応じて、Builder Image Version のドロップダウンリストを使用してバージョンを変更できます。
  5. オプションの Application Name フィールドに、リソースラベルリング用にアプリケーションの一意の名前を入力します。
  6. Name フィールドに、関連付けられたリソースに名前を付けるために一意のコンポーネント名を入力します。
  7. Resources フィールドで、アプリケーションのリソースタイプを選択します。
  8. Advanced options で、Create a Route to the Application をクリックし、デプロイされたアプリケーションのパブリック URL を設定します。
  9. Create をクリックしてアプリケーションをデプロイします。ユーザーは JAR ファイルがアップロード中であり、しばらくかかることを通知するトースト通知を確認します。トースト通知には、ビルドログを表示するリンクも含まれます。

    注記

    ユーザーがビルドの実行中にブラウザータブを閉じようとすると、ユーザーに Web アラートはページを実際に出るかどうかについて尋ねます。

JAR ファイルをアップロードし、アプリケーションがデプロイされると、デプロイメントが Topology ビューに表示されます。

2.1.5. Developer Catalog を使用したサービスまたはコンポーネントのアプリケーションへの追加

Developer Catalog を使用して、データベース、ビルダーイメージ、Helm チャートなどの Operator がサポートするサービスに基づいてアプリケーションとサービスをデプロイします。Developer Catalog には、プロジェクトに追加できるアプリケーションコンポーネント、サービス、イベントソース、または Source-to-Image ビルダーのコレクションが含まれます。クラスター管理者は、カタログで利用可能なコンテンツをカスタマイズできます。

手順

  1. Developer パースペクティブで、+Add に移動して、Developer Catalog タイルから All Services をクリックし、Developer Catalog で利用可能なすべてのサービスを表示します。
  2. All Services で、サービスの種類またはプロジェクトに追加する必要のあるコンポーネントを選択します。この例では、Databases を選択してすべてのデータベースサービスを一覧表示し、MariaDB をクリックしてサービスの詳細を表示します。
  3. Instantiate Template をクリックして、MariaDB サービスの詳細情報を含む自動的に設定されたテンプレートを表示し、Create をクリックして Topology ビューで MariaDB サービスを作成し、これを表示します。

    図2.1 トポロジーの MariaDB

    odc devcatalog toplogy