検索

2.4. OpenShift 4.x での Fuse Console の設定

download PDF

OpenShift 4.x では、Fuse Console の設定に、インストール、およびデプロイが必要になります。Fuse Console のインストールおよびデプロイには、以下のオプションがあります。

任意で、「OpenShift 4.x 上の Fuse Console のロールベースアクセス制御」の説明通りに、Fuse Console のロールベースアクセス制御 (RBAC) をカスタマイズすることができます。

2.4.1. OperatorHub を使用した OpenShift 4.x での Fuse Console のインストールおよびデプロイ

OpenShift 4.x に Fuse Console をインストールするには、OpenShift OperatorHub で提供される Fuse Console Operator を使用します。Fuse Console をデプロイするには、インストールされた Operator のインスタンスを作成します。

前提条件

手順

Fuse Console をインストールおよびデプロイするには、以下を行います。

  1. Web ブラウザーで、cluster admin 権限を持つユーザーとして OpenShift コンソールにログインします。
  2. Operators をクリックした後、OperatorHub をクリックします。
  3. 検索フィールドウインドウに Fuse Console と入力し、Operator のリストを絞り込みます。
  4. Fuse Console Operator をクリックします。
  5. Fuse Console Operator インストールウィンドウで Install をクリックします。

    Create Operator Subscription フォームが表示されます。

    • Update Channel には 7.13.x を選択します。
    • Installation Mode では、デフォルト (クラスターの特定の namespace) を受け入れます。

      operator のインストール後に Fuse Console をデプロイする場合、クラスター上のすべての namespace でアプリケーションを監視するか、Fuse Console operator がインストールされた namespace のみでアプリケーションを監視するかを選択できる点に注意してください。

    • Installed Namespace には、Fuse Console Operator をインストールする namespace を選択します。
    • Update Approval では、Automatic または Manual を選択し、Fuse Console の更新が OpenShift によってどのように対処されるかを設定します。

      • Automatic (自動) 更新を選択した場合、新しいバージョンの Fuse Console Operator が使用できるようになると、人的な介入なしで OpenShfit Operator Lifecycle Manager (OLM) によって、Fuse Console の稼働中のインスタンスが自動的にアップグレードされます。
      • Manual (手動) 更新を選択した場合、Operator の新しいバージョンが使用できるようになると、OLM によって更新リクエストが作成されます。クラスター管理者は、更新リクエストを手動で承認して、Fuse Console Operator を新しいバージョンに更新する必要があります。
  6. Install をクリックします。

    OpenShift によって、Fuse Console Operator が現在の namespace にインストールされます。

  7. インストールを確認するには、Operators をクリックした後、Installed Operators をクリックします。Operator のリストに Fuse Console が表示されます。
  8. OpenShift Web コンソールで Fuse Console をデプロイするには、以下を行います。

    1. Installed Operators のリストで、Name 列の Fuse Console をクリックします。
    2. Provided APIsOperator Details ページで、Create Instance をクリックします。

      設定のデフォルト値を使用するか、任意でデフォルト値を編集します。

      Fuse Console のパフォーマンスを向上する必要がある場合 (高可用性環境など)、Replicas で Fuse Console に割り当てられた Pod 数を増やすことができます。

      Rbac (ロールベースアクセス制御) では、デフォルトの RBAC 動作をカスタマイズする場合や、Fuse Console Operator をインストールした namespace に ConfigMap ファイルがすでに存在する場合にのみ、config Map フィールドに値を指定します。RBAC の詳細は、OpenShift 4.x 上の Fuse Console のロールベースアクセス制御 を参照してください。

      Nginx については、Fuse Console Operator インストールのパフォーマンスチューニング を参照してください。

    3. Create をクリックします。

      Fuse Console Operator Details ページが開き、デプロイメントの状態が表示されます。

  9. Fuse Console を開くには以下を行います。

    1. namespace デプロイメントの場合: OpenShift Web コンソールで、Fuse Console の operator をインストールしたプロジェクトを開き、Overview を選択します。Project Overview ページで Launcher セクションまで下方向にスクロールし、Fuse Console のリンクをクリックします。

      cluster デプロイメントでは、OpenShift Web コンソールのタイトルバーで、グリッドアイコン ( mf os grid icon ) をクリックします。ポップアップメニューの Red Hat アプリケーション の下にある、Fuse Console の URL リンクをクリックします。

    2. Fuse Console にログインします。

      ブラウザーに Authorize Access ページが表示され、必要なパーミッションが表示されます。

    3. Allow selected permissions をクリックします。

      Fuse Console がブラウザーで開き、アクセス権限のある Fuse アプリケーション Pod が表示されます。

  10. 表示するアプリケーションの Connect をクリックします。

    新しいブラウザーウィンドウが開かれ、Fuse Console にアプリケーションが表示されます。

2.4.2. コマンドラインを使用した OpenShift 4.x での Fuse Console のインストールおよびデプロイ

OpenShift 4.x では、次のデプロイメントオプションの 1 つを選択して、コマンドラインから Fuse Console をインストールおよびデプロイできます。

  • cluster - Fuse Console は、OpenShift クラスターで複数の namespace (プロジェクト) 全体にデプロイされた Fuse アプリケーションを検索し、接続することができます。このテンプレートをデプロイするには、OpenShift クラスターの管理者ロールが必要です。
  • ロールベースアクセス制御のあるクラスター - 設定可能なロールベースアクセス制御 (RBAC) のあるクラスターテンプレート。詳細は、OpenShift 4.x 上の Fuse Console のロールベースアクセス制御 を参照してください。
  • namespace - Fuse Console は特定の OpenShift プロジェクト (namespace) にアクセスできます。このテンプレートをデプロイするには、OpenShift プロジェクトの管理者ロールが必要です。
  • ロールベースアクセス制御のある namespace - 設定可能な RBAC のある namespace テンプレート。詳細は、OpenShift 4.x 上の Fuse Console のロールベースアクセス制御 を参照してください。

Fuse Console テンプレートのパラメーターリストを表示するには、以下の OpenShift コマンドを実行します。

oc process --parameters -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.0.fuse-7_13_0-00014-redhat-00001/fuse-console-namespace-os4.json

前提条件

手順

  1. 以下のコマンドを実行してすべてのテンプレートのリストを取得し、Fuse Console イメージストリームがインストールされていることを確認します。

    oc get template -n openshift
  2. 任意で、すでにインストールされているイメージストリームを新しいリリースタグで更新する場合は、以下のコマンドを使用して openshift namespace に Fuse Console イメージをインポートします。

    oc import-image fuse7/fuse-console-rhel8:1.10 --from=registry.redhat.io/fuse7/fuse-console-rhel8:1.10 --confirm -n openshift
  3. 以下のコマンドを実行して、Fuse Console の APP_NAME の値を取得します。

    oc process --parameters -f TEMPLATE-FILENAME

    ここで、TEMPLATE-FILENAME は以下のテンプレートのいずれかになります。

  4. 以下のコマンドを使用して、OpenShift 4.x での Fuse Console のセキュア化 で生成した証明書からシークレットを作成し、Fuse Console にマウントします (APP_NAME は、Fuse Console アプリケーションの名前になります)。

    oc create secret tls APP_NAME-tls-proxying --cert server.crt --key server.key
  5. 以下のコマンドを実行して、ローカルにコピーされた Fuse Console テンプレートをベースとした新しいアプリケーションを作成します。コマンドの myproject は OpenShift プロジェクトの名前、mytemp は Fuse Console テンプレートが含まれるローカルディレクトリーへのパス、myhost は Fuse Console にアクセスするホストの名前に置き換えます。

    • クラスターテンプレートの場合:

      oc new-app -n myproject -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.0.fuse-7_13_0-00014-redhat-00001/fuse-console-cluster-os4.json  -p ROUTE_HOSTNAME=myhost
    • RBAC テンプレートのあるクラスターの場合:

      oc new-app -n myproject -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.0.fuse-7_13_0-00014-redhat-00001/fuse-console-cluster-rbac.yml -p ROUTE_HOSTNAME=myhost
    • Namespace テンプレートの場合:

      oc new-app -n myproject -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.0.fuse-7_13_0-00014-redhat-00001/fuse-console-namespace-os4.json
    • RBAC テンプレートのある namespace の場合:

      oc new-app -n myproject -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.0.fuse-7_13_0-00014-redhat-00001/fuse-console-namespace-rbac.yml
  6. OpenShift Web コンソールを開くように Fuse Console を設定するには、以下のコマンドを実行して OPENSHIFT_WEB_CONSOLE_URL 環境変数を設定します。

    oc set env dc/${APP_NAME} OPENSHIFT_WEB_CONSOLE_URL=`oc get -n openshift-config-managed cm console-public -o jsonpath={.data.consoleURL}`
  7. 以下のコマンドを実行して、Fuse Console デプロイメントの状態と URL を取得します。

    oc status
  8. ブラウザーから Fuse Console にアクセスするには、手順 7. で返される URL (例: https://fuse-console.192.168.64.12.nip.io) を使用します。

2.4.2.1. OpenShift 4.x で Fuse Console をセキュア化するための証明書の生成

OpenShift 4.x で、Fuse Console プロキシーと Jolokia エージェントとの間の接続をセキュアにするには、Fuse Console をデプロイする前にクライアント証明書を生成する必要があります。サービス署名認証局の秘密鍵を使用して、クライアント証明書を署名する必要があります。

この手順は、コマンドラインを使用して Fuse Console をインストールおよびデプロイしている場合に のみ 実行する必要があります。Fuse Console Operator を使用している場合は、Fuse Console Operator がこのタスクを処理します。

重要

各 OpenShift クラスターに別のクライアント証明書を生成し、署名する必要があります。複数のクラスターに同じ証明書を使用しないでください。

前提条件

  • OpenShift クラスターにアクセス可能な cluster admin 権限がある。
  • 複数の OpenShift クラスターの証明書を生成し、現在のディレクトリーに別のクラスターの証明書を生成している場合は、以下のいずれかを実行して、現在のクラスターに別の証明書を生成するようにします。

    • 現在のディレクトリーから既存の証明書ファイル (ca.crtca.key、および ca.srl) を削除します。
    • 別の作業ディレクトリーに移動します。たとえば、現在の作業ディレクトリーの名前が cluster1 の場合、新しい cluster2 ディレクトリーを作成し、作業ディレクトリーをそのディレクトリーに変更します。

      mkdir ../cluster2

      cd ../cluster2

手順

  1. cluster admin 権限を持つユーザーとして OpenShift にログインします。

    oc login -u <user_with_cluster_admin_role>
  2. 以下のコマンドを実行して、サービス署名認証局のキーを取得します。

    • 以下を実行して、証明書を取得します。

      oc get secrets/signing-key -n openshift-service-ca -o "jsonpath={.data['tls\.crt']}" | base64 --decode > ca.crt
    • 以下を実行して、秘密鍵を取得します。

      oc get secrets/signing-key -n openshift-service-ca -o "jsonpath={.data['tls\.key']}" | base64 --decode > ca.key
  3. Kubernetes certificates administration の説明にしたがって、easyrsaopenssl、または cfssl を使用して、クライアント証明書を生成します。

    以下に、openssl を使用したコマンドの例を示します。

    1. 秘密鍵を生成します。

      openssl genrsa -out server.key 2048
    2. CSR 設定ファイルを作成します。

      cat <<EOT >> csr.conf
        [ req ]
        default_bits = 2048
        prompt = no
        default_md = sha256
        distinguished_name = dn
      
        [ dn ]
        CN = fuse-console.fuse.svc
      
        [ v3_ext ]
        authorityKeyIdentifier=keyid,issuer:always
        keyUsage=keyEncipherment,dataEncipherment,digitalSignature
        extendedKeyUsage=serverAuth,clientAuth
      EOT

      ここでは、CN パラメーターの値はアプリケーション名とアプリケーションが使用する namespace を参照します。

    3. CSR を生成します。

      openssl req -new -key server.key -out server.csr -config csr.conf
    4. 署名済みの証明書を発行します。

      openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 10000 -extensions v3_ext -extfile csr.conf

次のステップ

コマンドラインを使用した OpenShift 4.x での Fuse Console のインストールおよびデプロイ で説明されているように、Fuse Console のシークレットを作成するには、この証明書が必要です。

2.4.3. OpenShift 4.x 上の Fuse Console のロールベースアクセス制御

Fuse Console は、OpenShift によって提供されるユーザー承認に応じてアクセスを推測する、ロールベースアクセス制御 (RBAC) を提供します。Fuse Console では、RBAC はユーザーが Pod で MBean 操作を実行できるかどうかを判断します。

OpenShift の承認に関する詳細は、OpenShift ドキュメントの RBAC の使用によるパーミッションの定義および適用 を参照してください。

Operator を使用して OpenShift に Fuse Console をインストールした場合、ロールベースのアクセスはデフォルトで有効になります。

テンプレートを使用したインストールによって Fuse Console のロールベースアクセスを実装する場合は、RBAC で設定可能なテンプレートの 1 つ (fuse-console-cluster-rbac.yml または fuse-console-namespace-rbac.yml) を使用して、コマンドラインを使用した OpenShift 4.x での Fuse Console のインストールおよびデプロイ の説明どおりに、Fuse Console をインストールする必要があります。

Fuse Console RBAC は、OpenShift の Pod リソースでユーザーの verb (動詞) アクセスを利用して、Fuse Console の Pod の MBean 操作にユーザーがアクセスできるかどうかを判断します。デフォルトでは、Fuse Console には 2 つのユーザーロールがあります。

  • admin

    ユーザーが OpenShift で Pod を 更新 できる場合、ユーザーには Fuse Console の admin ロールが付与されます。ユーザーは、Fuse Console で、その Pod に対して 書き込み の MBean 操作を実行できます。

  • viewer

    ユーザーが OpenShift で Pod を 取得 できる場合、ユーザーには Fuse Console の viewer ロールが付与されます。ユーザーは、Fuse Console で、その Pod に対して 読み取り専用 の MBean 操作を実行できます。

注記

RBAC 以外のテンプレートを使用して Fuse Console をインストールした場合、Pod リソースで update verb (動詞) が付与された OpenShift ユーザーのみが Fuse Console の MBeans 操作の実行が許可されます。Pod リソースで get verb (動詞) を付与されたユーザーは、Pod を 表示 できますが、Fuse Console の操作は実行できません。

2.4.3.1. OpenShift 4.x での Fuse Console のアクセスロールの判断

Fuse Console のロールベースアクセス制御は、Pod に対するユーザーの OpenShift パーミッションから推測されます。特定のユーザーに付与された Fuse Console のアクセスロールを判断するには、Pod に対してユーザーに付与された OpenShift パーミッションを取得します。

前提条件

  • ユーザーの名前を知っている必要があります。
  • Pod の名前を知っている必要があります。

手順

  • ユーザーが Pod に対して Fuse Console の admin ロールを持っているかどうかを確認するには、以下のコマンドを実行してユーザーが OpenShift で Pod を更新できるかどうかを確認します。

    oc auth can-i update pods/<pod> --as <user>

    応答が yes の場合、ユーザーはその Pod に対して Fuse Console の admin ロールを持っています。ユーザーは、Fuse Console で、その Pod に対して 書き込み の MBean 操作を実行できます。

  • ユーザーが Pod に対して Fuse Console の viewer ロールを持っているかどうかを確認するには、以下のコマンドを実行してユーザーが OpenShift で Pod を取得できるかどうかを確認します。

    oc auth can-i get pods/<pod> --as <user>

    応答が yes の場合、ユーザーはその Pod に対して Fuse Console の viewer ロールを持っています。ユーザーは、Fuse Console で、その Pod に対して 読み取り専用 の MBean 操作を実行できます。コンテキストによっては、Fuse Console でオプションを無効にしたり、ユーザーによる 書き込み MBean 操作の試行時にこのユーザーの操作は許可されないという内容のメッセージを表示したりして、viewer ロールを持つユーザーによる 書き込み MBean 操作が実行されないようにします。

    応答が no の場合、ユーザーは Fuse Console のロールにバインドされず、ユーザーは Fuse Console で Pod を確認できません。

2.4.3.2. OpenShift 4.x での Fuse Console へのロールベースアクセスのカスタマイズ

OperatorHub を使用して Fuse Console をインストールした場合、OpenShift 4.x 上の Fuse Console のロールベースアクセス制御 で説明されているように、ロールベースアクセス制御 (RBAC) はデフォルトで有効になります。Fuse Console の RBAC 動作をカスタマイズする場合、Fuse Console をデプロイする前に ConfigMap ファイル (カスタムの RBAC 動作を定義する) を指定する必要があります。カスタム ConfigMap ファイルは、Fuse Console Operator をインストールした namespace に配置する必要があります。

コマンドラインテンプレートを使用して Fuse Console をインストールする場合、deployment-cluster-rbac.yml および deployment-namespace-rbac.yml テンプレートによって、設定ファイル (ACL.yml) が含まれる ConfigMap が作成されます。設定ファイルでは、MBean 操作に許可されるロールが定義されます。

前提条件

  • OperatorHub または Fuse Console の RBAC テンプレート (deployment-cluster-rbac.yml または deployment-namespace-rbac.yml) の 1 つを使用して、Fuse Console がインストール済みである必要があります。

手順

Fuse Console の RBAC ロールをカスタマイズする場合は、以下を行います。

  1. コマンドラインを使用して Fuse Console をインストールした場合、インストールテンプレートにはデフォルトの ConfigMap ファイルが含まれるため、次のステップを省略できます。

    OperatorHub を使用して Fuse Console をインストールした場合、Fuse Console をデプロイする前に RBAC ConfigMap を作成します。

    1. 現在の OpenShift プロジェクトが Fuse Console をインストールするプロジェクトであることを確認します。たとえば、Fuse Console を fusetest プロジェクトにインストールするには、以下のコマンドを実行します。

      oc project fusetest
    2. テンプレートから Fuse Console RBAC ConfigMap ファイルを作成するには、以下のコマンドを実行します。

      oc process -f {sb2-templates-base-url}/fuse-console-operator-rbac.yml -p APP_NAME=fuse-console | oc create -f -
  2. 以下のコマンドを実行してエディターで ConfigMap を開きます。

    oc edit cm $APP_NAME-rbac

    以下に例を示します。

    oc edit cm fuse-console-rbac
  3. ファイルを編集します。
  4. ファイルを保存して変更を適用します。Fuse Console の Pod は OpenShift によって自動的に再起動されます。

2.4.3.3. OpenShift 4.x での Fuse Console のロールベースアクセス制御の無効化

コマンドラインを使用して Fuse Console をインストール し、Fuse Console の RBAC テンプレートのいずれかを指定した場合、Fuse Console の HAWTIO_ONLINE_RBAC_ACL 環境変数は、ロールベースアクセス制御 (RBAC) の ConfigMap 設定ファイルのパスを OpenShift サーバーに渡します。HAWTIO_ONLINE_RBAC_ACL 環境変数が指定されていない場合、RBAC のサポートは無効になり、Pod リソース (OpenShift の) で update verb (動詞) が付与されたユーザーのみが Fuse Console の Pod で MBean 操作を呼び出すことが承認されます。

OperatorHub を使用して Fuse Console をインストールする場合は、ロールベースのアクセスはデフォルトで有効になり、HAWTIO_ONLINE_RBAC_ACL 環境変数は適用されません。

前提条件

コマンドラインを使用して Fuse Console がインストール済みで、Fuse Console の RBAC テンプレート (deployment-cluster-rbac.yml または deployment-namespace-rbac.yml) のいずれかを指定している。

手順

Fuse Console のロールベースのアクセスを無効にするには、以下を実行します。

  1. OpenShift で、Fuse Console の Deployment Config リソースを編集します。
  2. HAWTIO_ONLINE_RBAC_ACL 環境変数の定義をすべて削除します。

    (値を消去するだけでは不十分です)。

  3. ファイルを保存して変更を適用します。Fuse Console の Pod は OpenShift によって自動的に再起動されます。

2.4.4. OpenShift 4.x での Fuse Console のアップグレード

Red Hat OpenShift 4.x では、Red Hat Fuse Operator などの Operator の更新が処理されます。詳細は、Operators OpenShift ドキュメント を参照してください。

その後、アプリケーションの設定方法によっては、Operator の更新でアプリケーションのアップグレードをトリガーできるようになります。

Fuse Console アプリケーションでは、アプリケーションカスタムリソース定義の .spec.version フィールドを編集して、アプリケーションのアップグレードをトリガーすることもできます。

前提条件

  • OpenShift クラスターの管理者権限が必要です。

手順

Fuse Console アプリケーションをアップグレードするには、以下を行います。

  1. ターミナルウィンドウで、以下のコマンドを使用してアプリケーションカスタムリソース定義の .spec.version フィールドを変更します。

    oc patch -n <project-name> <custom-resource-name> --type='merge' -p '{"spec":{"version":"1.7.1"}}'

    以下に例を示します。

    oc patch -n myproject hawtio/example-fuseconsole --type='merge' -p '{"spec":{"version":"1.7.1"}}'
  2. アプリケーションの状態が更新されたことを確認します。

     oc get -n myproject hawtio/example-fuseconsole

    応答には、バージョン番号などのアプリケーションに関する情報が表示されます。

    NAME                  AGE   URL                                        IMAGE
    example-fuseconsole   1m    https://fuseconsole.192.168.64.38.nip.io   docker.io/fuseconsole/online:1.7.1

    .spec.version フィールドの値を変更すると、OpenShift によってアプリケーションが自動的に再デプロイされます。

  3. バージョンの変更によってトリガーされた再デプロイの状態をチェックするには、以下を実行します。

    oc rollout status deployment.v1.apps/example-fuseconsole

    正常にデプロイされた場合は以下の応答が表示されます。

    deployment "example-fuseconsole" successfully rolled out

2.4.5. OpenShift 4.x サーバーでの Fuse イメージストリームおよびテンプレートのアップグレード

OpenShift Container Platform 4.x は、OpenShift namespace で操作する Samples Operator を使用して、Red Hat Enterprise Linux (RHEL) ベースの OpenShift Container Platform イメージストリームおよびテンプレートをアップグレードおよび更新します。

Fuse on OpenShift イメージストリームおよびテンプレートをアップグレードするには以下を実行します。

  • Samples Operator の再設定
  • Fuse イメージストリームおよびテンプレートを Skipped Imagestreams and Skipped Templates フィールドに追加します。

    • Skipped Imagestreams (スキップされるイメージストリーム): Samples Operator のインベントリーにあるが、クラスター管理者の希望により Operator が無視または管理しないようにするイメージストリーム。
    • Skipped Templates (スキップされるテンプレート): Samples Operator のインベントリーにあるが、クラスター管理者の希望により Operator が無視または管理しないようにするテンプレート。

前提条件

  • OpenShift サーバーにアクセスできる必要があります。
  • registry.redhat.io への認証が設定されている。

手順

  1. OpenShift 4 サーバーを起動します。
  2. OpenShift サーバーに管理者としてログインします。

    oc login --user system:admin --token=my-token --server=https://my-cluster.example.com:6443
  3. docker-registry シークレットを作成したプロジェクトを使用していることを確認します。

    oc project openshift
  4. Samples Operator の現在の設定を表示します。

    oc get configs.samples.operator.openshift.io -n openshift-cluster-samples-operator -o yaml
  5. Samples Operator が、追加された Fuse テンプレートおよびイメージストリームを無視するよう設定します。

    oc edit configs.samples.operator.openshift.io -n openshift-cluster-samples-operator
  6. Fuse imagestreams の Skipped Imagestreams セクションを追加し、Fuse および Spring Boot 2 のテンプレートを Skipped Templates セクションに追加します。

    [...]
    spec:
      architectures:
      - x86_64
      managementState: Managed
      skippedImagestreams:
      - fuse-console-rhel8
      - fuse-eap-openshift-jdk8-rhel7
      - fuse-eap-openshift-jdk11-rhel8
      - fuse-java-openshift-rhel8
      - fuse-java-openshift-jdk11-rhel8
      - fuse-karaf-openshift-rhel8
      - fuse-karaf-openshift-jdk11-rhel8
      - fuse-apicurito-generator-rhel8
      - fuse-apicurito-rhel8
      skippedTemplates:
      - s2i-fuse713-eap-camel-amq
      - s2i-fuse713-eap-camel-cdi
      - s2i-fuse713-eap-camel-cxf-jaxrs
      - s2i-fuse713-eap-camel-cxf-jaxws
      - s2i-fuse713-karaf-camel-amq
      - s2i-fuse713-karaf-camel-log
      - s2i-fuse713-karaf-camel-rest-sql
      - s2i-fuse713-karaf-cxf-rest
      - s2i-fuse713-spring-boot-2-camel-amq
      - s2i-fuse713-spring-boot-2-camel-config
      - s2i-fuse713-spring-boot-2-camel-drools
      - s2i-fuse713-spring-boot-2-camel-infinispan
      - s2i-fuse713-spring-boot-2-camel-rest-3scale
      - s2i-fuse713-spring-boot-2-camel-rest-sql
      - s2i-fuse713-spring-boot-2-camel
      - s2i-fuse713-spring-boot-2-camel-xa
      - s2i-fuse713-spring-boot-2-camel-xml
      - s2i-fuse713-spring-boot-2-cxf-jaxrs
      - s2i-fuse713-spring-boot-2-cxf-jaxws
      - s2i-fuse713-spring-boot-2-cxf-jaxrs-xml
      - s2i-fuse713-spring-boot-2-cxf-jaxws-xml
  7. Fuse on OpenShift イメージストリームをアップグレードします。

    BASEURL=https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.0.fuse-7_13_0-00014-redhat-00001
    
    oc replace -n openshift -f ${BASEURL}/fis-image-streams.json
  8. Fuse on OpenShift クイックスタートテンプレートをアップグレードします。

    for template in eap-camel-amq-template.json \
     eap-camel-cdi-template.json \
     eap-camel-cxf-jaxrs-template.json \
     eap-camel-cxf-jaxws-template.json \
     karaf-camel-amq-template.json \
     karaf-camel-log-template.json \
     karaf-camel-rest-sql-template.json \
     karaf-cxf-rest-template.json ;
     do
     oc replace -n openshift \
     ${BASEURL}/quickstarts/${template}
     done
  9. Spring Boot 2 クイックスタートテンプレートをアップグレードします。

    for template in spring-boot-2-camel-amq-template.json \
     spring-boot-2-camel-config-template.json \
     spring-boot-2-camel-drools-template.json \
     spring-boot-2-camel-infinispan-template.json \
     spring-boot-2-camel-rest-3scale-template.json \
     spring-boot-2-camel-rest-sql-template.json \
     spring-boot-2-camel-template.json \
     spring-boot-2-camel-xa-template.json \
     spring-boot-2-camel-xml-template.json \
     spring-boot-2-cxf-jaxrs-template.json \
     spring-boot-2-cxf-jaxws-template.json \
     spring-boot-2-cxf-jaxrs-xml-template.json \
     spring-boot-2-cxf-jaxws-xml-template.json ;
     do oc replace -n openshift \
     ${BASEURL}/quickstarts/${template}
     done
  10. (オプション) アップグレードされた Fuse on OpenShift テンプレートを表示します。

    oc get template -n openshift

2.4.6. OpenShift 4.x での Fuse Console のパフォーマンスチューニング

デフォルトでは、Fuse Console は以下の Nginx 設定を使用します。

  • clientBodyBufferSize: 256k
  • proxyBuffers: 16 128k
  • subrequestOutputBufferSize: 10m

注記: これらの設定の説明は、Nginx のドキュメント (http://nginx.org/en/docs/dirindex.html) を参照してください。

Fuse Console のパフォーマンスを調整するには、clientBodyBufferSizeproxyBuffers、および subrequestOutputBufferSize 環境変数を設定します。たとえば、Fuse Console を使用して多数の Pod およびルート (合計 100 のルートなど) を監視する場合、Fuse Console の subrequestOutputBufferSize 環境変数を 60m から 100m の間で設定することで、ロードタイムアウトの問題を解決することができます 。

これらの環境変数の設定方法は、OpenShift 4.x に Fuse Console をインストールする方法によって異なります。

  • Fuse Console Operator の使用
  • Fuse Console テンプレートの使用

2.4.6.1. Fuse Console Operator インストールのパフォーマンスチューニング

Openshift 4.x では、Fuse Console のデプロイ前後に Nginx パフォーマンスチューニング環境変数を設定できます。これを後で行うと、OpenShift は Fuse Console を再デプロイします。

前提条件

手順

Fuse Console のデプロイ前後に環境変数を設定できます。

  • Fuse Console をデプロイする前に環境変数を設定するには、以下を実行します。

    1. OpenShift Web コンソールから、Fuse Console Operator がインストールされているプロジェクトで、Operators> Installed Operators> Red Hat Integration - Fuse Console を選択します。
    2. Hawtio タブをクリックし、Create Hawtio をクリックします。
    3. Create Hawtio ページで、Form ビューConfig> Nginx セクションまでスクロールダウンします。
    4. Nginx セクションをデプロイメントしてから、環境変数を設定します。以下に例を示します。

      • clientBodyBufferSize: 256k
      • proxyBuffers: 16 128k
      • subrequestOutputBufferSize: 100m
    5. 設定を保存します。
    6. Create をクリックして Fuse Console をデプロイします。
    7. デプロイメントが完了したら、Deployments> fuse-console ページを開いて Environment をクリックし、環境変数がリストにあることを確認します。
  • Fuse Console のデプロイ後に環境変数を設定するには、以下を実行します。

    1. OpenShift Web コンソールで、Fuse Console がデプロイされているプロジェクトを開きます。
    2. Operators> Installed Operators> Red Hat Integration - Fuse Console の順に選択します。
    3. Hawtio タブをクリックし、fuse-console をクリックします。
    4. Actions> Edit Hawtio を選択します。
    5. Editor ウィンドウで、spec セクションまでスクロールダウンします。
    6. 以下のように、spec セクションで、新規の nginx セクションを追加し、1 つ以上の環境変数を指定します。

      apiVersion: hawt.io/v1alpha1
      kind: Hawtio
      metadata:
        name: fuse-console
      spec:
        type: Namespace
        nginx:
          clientBodyBufferSize: 256k
          proxyBuffers: 16 128k
          subrequestOutputBufferSize: 100m
      .
      .
      .
    7. Save をクリックします。

      OpenShift は Fuse Console を再デプロイします。

    8. 再デプロイメントが完了したら、Workloads> Deployments> fuse-console ページを開いてから Environment をクリックし、リストの環境変数を確認します。

2.4.6.2. Fuse Console テンプレートインストールのパフォーマンスチューニング

Openshift 4.x では、Fuse Console のデプロイ前後に Nginx パフォーマンスチューニング環境変数を設定できます。これを後で行うと、OpenShift は Fuse Console を再デプロイします。

前提条件

手順

Fuse Console のデプロイ前後に環境変数を設定できます。

  • Fuse Console をデプロイする前に環境変数を設定するには、以下を実行します。

    1. 使用する Fuse Console テンプレートを確認します。

      • クラスターテンプレート (fuse-console-cluster-os4.json)
      • 設定可能な RBAC が含まれるクラスターテンプレート (fuse-console-cluster-rbac.yml)
      • namespace テンプレート (fuse-console-namespace-os4.json)
      • 設定可能な RBAC が含まれる namespace テンプレート (fuse-console-namespace-rbac.yml)
    2. 以下の例のように、Fuse Console に使用する Fuse Console テンプレートのローカルコピーを編集し、NGINX_CLIENT_BODY_BUFFER_SIZENGINX_PROXY_BUFFERS、および/または NGINX_SUBREQUEST_OUTPUT_BUFFER_SIZE の環境変数を追加します。

      apiVersion: apps.openshift.io/v1
      kind: DeploymentConfig
      metadata:
        name: fuse-console
      spec:
        template:
          spec:
            containers:
            - env:
              - name: NGINX_CLIENT_BODY_BUFFER_SIZE
                value: 256k
              - name: NGINX_PROXY_BUFFERS
                value: 16 128k
              - name: NGINX_SUBREQUEST_OUTPUT_BUFFER_SIZE
                value: 100m
    3. 変更を保存します。
    4. OpenShift 4.x での Fuse Console の設定の説明にあるように、Fuse Console をインストールおよびデプロイする手順にしたがいます。
  • Fuse Console のデプロイ後に環境変数を設定するには、以下を実行します。

    1. ターミナルウィンドウで、OpenShift クラスターにログインします。
    2. Fuse Console がデプロイされているプロジェクトを開きます。たとえば、Fuse Console が myfuse プロジェクトにデプロイされている場合は、以下のコマンドを使用します。

      oc project myfuse

    3. Fuse Console デプロイメントの名前を取得します。

      oc get deployments

      このコマンドは、現在のプロジェクトで実行しているデプロイメントのリストを返します。以下に例を示します。

      NAME                        READY   UP-TO-DATE   AVAILABLE    AGE
      fuse-console                1/1     1               1           114m
    4. 以下のいずれかのコマンドを実行して、Fuse Console デプロイメントの環境変数を設定します。

      oc set env dc/fuse-console NGINX_CLIENT_BODY_BUFFER_SIZE="256k"
      
      oc set env dc/fuse-console NGINX_PROXY_BUFFERS="16 128k"
      
      oc set env dc/fuse-console NGINX_SUBREQUEST_OUTPUT_BUFFER_SIZE="10m"

      OpenShift は Fuse Console を再デプロイします。

    5. 再デプロイメントが完了したら、環境変数の設定を確認します。

      1. Fuse Console の Pod 名を取得します。

        oc get pods
      2. 次のコマンドを実行して、環境設定を表示します。

        oc exec <fuse-console-podname> -- cat /opt/app-root/etc/nginx.d/nginx-gateway.conf | grep "Performance tuning" -A 3

        たとえば、Pod 名が fuse-console-6646cbbd4c-9rplg である場合は、以下のコマンドを実行します。

        oc exec fuse-console-6646cbbd4c-9rplg -- cat /opt/app-root/etc/nginx.d/nginx-gateway.conf | grep "Performance tuning" -A 3

2.4.6.3. Fuse Console でアプリケーションを表示するためのパフォーマンスチューニング

Fuse console の強化されたパフォーマンスチューニング機能により、多数の MBean を持つアプリケーションを表示できます。この機能を使用するには、次の手順を実行します。

前提条件

手順

  1. アプリケーションのメモリー制限を増やします。

    Fuse コンソールに到達する前にアプリケーションが OOM エラーでクラッシュしないように、メモリー制限を (たとえば 256Mi から 512 Mi に) 増やす必要があります。Fuse クイックスタートの場合、アプリケーションの src/main/jkube/deployment.yml ファイルを編集します。

    spec:
      template:
        spec:
          containers:
            -
              resources:
                [...]
                limits:
                  cpu: "1.0"
                  memory: 512Mi
  2. Fuse Console Deployment または DeploymentConfig に十分なメモリー制限があることを確認してください。不十分な場合は、たとえば 200Mi から 512Mi に制限を増やします。
  3. nginx ログにクライアントへの送信中に「too big subrequest response while sending to client」エラーが表示される場合は、「Fuse Console Operator インストールのパフォーマンスチューニング」 セクションに記載される解決策を適用します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.