第3章 アプリケーションライフサイクル管理

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

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

  • From Git: このオプションを使用して、Git リポジトリーの既存のコードベースをインポートし、OpenShift Container Platform でアプリケーションを作成し、ビルドし、デプロイします。
  • Container Image: イメージストリームまたはレジストリーからの既存イメージを使用し、これを OpenShift Container Platform にデプロイします。
  • From Dockerfile: Git リポジトリーから dockerfile をインポートし、アプリケーションをビルドし、デプロイします。
  • YAML: エディターを使用して YAML または JSON 定義を追加し、リソースを作成し、変更します。
  • From Catalog: Developer Catalog で、イメージビルダーに必要なアプリケーション、サービス、またはソースを選択し、これをプロジェクトに追加します。
  • Database: Developer Catalog を参照して、必要なデータベースサービスを選択し、これをアプリケーションに追加します。
  • Operator Backed: Developer Catalog を展開して、必要な Operator 管理サービスを選択し、デプロイします。
  • Helm Chart: Developer Catalog を展開して必要な Helm チャートを選択し、アプリケーションおよびサービスのデプロイメントを単純化します。

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

3.1.1. 前提条件

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

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

3.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 ビューに表示されます。サンプルアプリケーションの作成後、デプロイメントがアプリケーションに追加されていることを確認できます。

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

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

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

手順

  1. +Add ビューで 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. Builder セクションで、URL の検証後に、適切なビルダーイメージが検出され、スターのマークが付けられ、自動的に選択されます。https://github.com/sclorg/nodejs-ex Git URL の場合、Node.js ビルダーイメージがデフォルトで選択されます。ビルダーイメージが自動検出されていない場合は、ビルダーイメージを選択します。必要に応じて、Builder Image Version のドロップダウンリストを使用してバージョンを変更できます。
  5. General セクションで、以下を実行します。

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

      注記

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

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

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

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

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

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

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

スケーリング

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

Knative サービスを作成している場合は、次の設定も行うことができます。

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

Labels リンクをクリックして、カスタムラベルをアプリケーションに追加します。

  1. Create をクリックして、アプリケーションを作成し、Topology ビューでビルドのステータスを確認します。

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

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

手順

  1. Developer パースペクティブで、+AddFrom Catalog に移動し、 Developer Catalog で利用可能なすべてのサービスを表示します。
  2. All Items で、サービスの種類またはプロジェクトに追加する必要のあるコンポーネントを選択します。この例では、Databases を選択してすべてのデータベースサービスを一覧表示し、MariaDB をクリックしてサービスの詳細を表示します。

    図3.1 開発者カタログ

    odc devcatalog mariadb
  3. Instantiate Template をクリックして、MariaDB サービスの詳細情報を含む自動的に設定されたテンプレートを表示し、Create をクリックして Topology ビューで MariaDB サービスを作成し、これを表示します。

    図3.2 トポロジーの MariaDB

    odc devcatalog toplogy

3.1.5. 関連情報

  • OpenShift Serverless の Knative ルーティング設定についての詳細は、Routingを参照してください。
  • OpenShift Serverless の Knative 自動スケーリング設定についての詳細は、Autoscalingを参照してください。
  • OpenShift Serverless のドメインマッピング設定についての詳細は、Knative サービスのカスタムドメインの設定 を参照してください。