第5章 OpenShift Serverless サービスとしての Quarkus アプリケーションのデプロイ


Docker ビルドストラテジーを使用して、Quarkus アプリケーションを OpenShift Serverless にデプロイできます。OpenShift Serverless Knative Serving を使用することで、読み込むサイズに応じてサービスをスケールアップまたはスケールダウンできます。現在リクエストされていないサービスをスケールダウンすることで、メモリー機能を向上できます。

Quarkus プロジェクトには、事前に生成された Dockerfile と手順が含まれています。カスタム Dockerfile を使用する場合は、src/main/docker ディレクトリー、またはモジュール内の任意の場所にファイルを追加する必要があります。さらに、JVM モードの quarkus.openshift.jvm-dockerfile プロパティーおよびネイティブモードの quarkus.openshift.native-dockerfile プロパティーを使用して、Dockerfile へのパスを設定する必要があります。

以下の手順では、Quarkus OpenShift エクステンションを使用して、Serverless Quarkus Java アプリケーションまたはネイティブ実行可能ファイルにコンパイルされた Serverless アプリケーションをデプロイする方法を説明します。

前提条件

  • quarkus-openshift エクステンションが含まれる Quarkus Maven プロジェクトがある。
  • oc を使用して OpenShift にログインし、プロジェクトを選択している。

  • OpenShift Serverless Operator がインストールされている。
  • OpenShift Knative Serving がインストールされ、確認されている。詳細は、Knative Serving のインストール を参照してください。
  • ネイティブコンパイルの場合は、Podman や Docker などの Linux X86_64 オペレーティングシステムまたは OCI (Open Container Initiative) と互換性のあるコンテナーランタイムが必要です。

手順

  1. Quarkus プロジェクトが含まれるディレクトリーに移動します。
  2. application.properties ファイルで以下のプロパティーを設定します。

    1. Knative をデプロイメントターゲットとして設定します。

      quarkus.kubernetes.deployment-target=knative
      Copy to Clipboard Toggle word wrap
    2. Docker ビルドストラテジーを設定します。

      quarkus.openshift.build-strategy=docker
      Copy to Clipboard Toggle word wrap
    3. OpenShift 内部レジストリーからコンテナーイメージをプルするように OpenShift Serverless に指示します。

      quarkus.container-image.registry=image-registry.openshift-image-registry.svc:5000
      Copy to Clipboard Toggle word wrap
      注記

      OpenShift <project_name> がホストシステムの username と異なる場合は、コンテナーイメージのグループを設定します。設定しない場合は、Quarkus はイメージレジストリーからイメージをプルできません。

      quarkus.container-image.group=<project_name>
      Copy to Clipboard Toggle word wrap
    4. (オプション) 信頼されていない証明書を使用している場合は、KubernetesClient を設定します。

      quarkus.kubernetes-client.trust-certs=true
      Copy to Clipboard Toggle word wrap
    5. (オプション) サービスを公開して OpenShift ルートを作成します。

      quarkus.openshift.expose=true
      Copy to Clipboard Toggle word wrap
    6. (オプション) カスタム Dockerfile へのパスを設定します。

      quarkus.openshift.jvm-dockerfile=<path_to_your_dockerfile>
      Copy to Clipboard Toggle word wrap

      以下の例は、Dockerfile.custom-jvm へのパスを示しています。

      quarkus.openshift.jvm-dockerfile=src/main/resources/Dockerfile.custom-jvm
      Copy to Clipboard Toggle word wrap
  3. (オプション) ネイティブ実行可能ファイルにコンパイルされた Serverless アプリケーションをデプロイするには、以下のプロパティーを設定する必要があります。

    1. コンテナーランタイムを設定します。

      quarkus.native.container-build=true
      Copy to Clipboard Toggle word wrap
    2. コンテナーエンジンを指定します。

      • Podman を使用してネイティブ実行可能ファイルをビルドします。

        quarkus.native.container-runtime=podman
        Copy to Clipboard Toggle word wrap
      • Docker を使用してネイティブ実行可能ファイルをビルドします。

        quarkus.native.container-runtime=docker
        Copy to Clipboard Toggle word wrap
    3. (オプション) カスタム Dockerfile へのパスを設定します。

      quarkus.openshift.native-dockerfile=<path_to_your_dockerfile>
      Copy to Clipboard Toggle word wrap
  4. 以下のオプションのいずれかを使用して、Serverless アプリケーションをパッケージ化して OpenShift にデプロイします。

    1. Quarkus Java アプリケーションをデプロイします。

      ./mvnw clean package -Dquarkus.kubernetes.deploy=true
      Copy to Clipboard Toggle word wrap
    2. Quarkus ネイティブアプリケーションをデプロイします。

      ./mvnw clean package -Pnative -Dquarkus.kubernetes.deploy=true
      Copy to Clipboard Toggle word wrap

検証

  1. 現在の OpenShift プロジェクトに関連付けられている Pod のリストを表示します。

    oc get pods
    Copy to Clipboard Toggle word wrap
  2. アプリケーションの Pod のログ出力を取得するには、以下のコマンドを入力します。<pod_name> は、お使いのアプリケーションの名前の接頭辞が付いた最新の Pod の名前になります。

    oc logs -f <pod_name>
    Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る