2.3. OpenShift 3.x サーバーでの Fuse イメージストリームおよびテンプレートのインストール
Red Hat コンテナーレジストリーへの認証を設定した後、Red Hat Fuse on OpenShift イメージストリームおよびテンプレートをインポートおよび使用します。
手順
- OpenShift サーバーを起動します。
OpenShift サーバーに管理者としてログインします。
oc login -u system:admin
docker-registry シークレットを作成したプロジェクトを使用していることを確認します。
oc project openshift
Fuse on OpenShift イメージストリームをインストールします。
BASEURL=https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.0.fuse-760043-redhat-00003 oc create -n openshift -f ${BASEURL}/fis-image-streams.json
クイックスタートテンプレートをインストールします。
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 \ eap-camel-jpa-template.json \ karaf-camel-amq-template.json \ karaf-camel-log-template.json \ karaf-camel-rest-sql-template.json \ karaf-cxf-rest-template.json \ spring-boot-camel-amq-template.json \ spring-boot-camel-config-template.json \ spring-boot-camel-drools-template.json \ spring-boot-camel-infinispan-template.json \ spring-boot-camel-rest-sql-template.json \ spring-boot-camel-rest-3scale-template.json \ spring-boot-camel-template.json \ spring-boot-camel-xa-template.json \ spring-boot-camel-xml-template.json \ spring-boot-cxf-jaxrs-template.json \ spring-boot-cxf-jaxws-template.json ; do oc create -n openshift -f \ https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.0.fuse-760043-redhat-00003/quickstarts/${template} done
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 create -n openshift -f \ https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.0.fuse-sb2-760039-redhat-00001/quickstarts/${template} done
Fuse Console のテンプレートをインストールします。
oc create -n openshift -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.0.fuse-760043-redhat-00003/fis-console-cluster-template.json oc create -n openshift -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.0.fuse-760043-redhat-00003/fis-console-namespace-template.json
注記Fuse Console のデプロイに関する詳細は、OpenShift 4.x での Fuse Console の設定 を参照してください。
Apicurito テンプレートをインストールします。
oc create -n openshift -f ${BASEURL}/fuse-apicurito.yml
(任意手順): インストールされた Fuse on OpenShift イメージおよびテンプレートを表示します。
oc get template -n openshift
2.3.1. OpenShift 3.11 での Fuse Console の設定
OpenShift 3.11 では、Fuse Console の設定方法は 2 つあります。
- プロジェクトで実行しているすべての Fuse コンテナーを監視できるように 集約型 の Fuse Console カタログアイテムをプロジェクトに追加して設定します。
- 実行している 1 つの Fuse コンテナーを監視できるように特定の Pod から設定します。
OpenShift Console またはコマンドラインから Fuse Console をデプロイできます。
Minishift または CDK ベースの環境変数に Fuse Console をインストールするには、以下の KCS の記事で説明されている手順に従います。
- Minishift または CDK ベースの環境に Fuse Console をインストールするには、KCS 4998441 を参照してください。
- Jolokia 認証を無効にする必要がある場合は、KCS 3988671 で説明されている回避策を参照してください。
前提条件
- Fuse on OpenShift ガイド の説明にしたがって、Fuse Console の Fuse on OpenShift イメージストリームおよびテンプレートをインストールする必要があります。
OpenShift 3.11 のクラスターモードでは、cluster admin ロールとクラスターモードテンプレートが必要です。以下のコマンドを実行します。
oc adm policy add-cluster-role-to-user cluster-admin system:serviceaccount:openshift-infra:template-instance-controller
- クラスターモードテンプレートは、デフォルトでは OpenShift Container Platform の最新バージョンでのみ利用できます。OpenShift Online のデフォルトカタログでは提供されません。
- Fuse Console のテンプレートは、デフォルトでエンドツーエンド暗号化を設定するため、Fuse Console のリクエストはブラウザーからクラスター内のサービスまでエンドツーエンドでセキュア化されます。
- Fuse Console のユーザー管理は、OpenShift によって処理されます。
- ロールベースアクセス制御 (デプロイ後に Fuse Console にアクセスするユーザーの場合) は現在 Fuse on OpenShift では使用できません。
「OpenShift 3.11 Console からの Fuse Console のデプロイ」
「OpenShift 3.11 の Fuse Console から単一の Fuse Pod を監視」
「コマンドラインからの Fuse Console のデプロイ」
2.3.1.1. OpenShift 3.11 Console からの Fuse Console のデプロイ
OpenShift 3.11 Console から OpenShift クラスターで Fuse Console をデプロイするには、以下の手順にしたがいます。
手順
- OpenShift コンソールで既存のプロジェクトを開くか、新しいプロジェクトを作成します。
Fuse Console を OpenShift プロジェクトに追加します。
Add to Project
Browse Catalog と選択します。 Select an item to add to the current project ページが開きます。
Search フィールドで Fuse Console を入力します。
Red Hat Fuse 7.x Console および Red Hat Fuse 7.x Console (cluster) アイテムが検索結果として表示されるはずです。
Red Hat Fuse Console アイテムが検索結果として表示されない場合や、表示されるアイテムが最新バージョンでない場合は、Fuse on OpenShift ガイド の OpenShift サーバーの準備にある説明にしたがって、Fuse Console テンプレートを手作業でインストールします。
Red Hat Fuse Console アイテムの 1 つをクリックします。
- Red Hat Fuse 7.x Console - このバージョンの Fuse Console は、現在の OpenShift プロジェクトにデプロイされた Fuse アプリケーションを検出し、接続します。
- Red Hat Fuse 7.x Console (cluster) - このバージョンの Fuse Console は、OpenShift クラスターの複数のプロジェクトにデプロイされた Fuse アプリケーションを検出し、接続します。
Red Hat Fuse Console ウィザードで Next をクリックします。ウィザードの Configuration ページが開きます。
任意で、設定パラメーターのデフォルト値を変更できます。
Create をクリックします。
ウィザードの Results ページに Red Hat Fuse Console が作成されたことが表示されます。
- Continue to the project overview をクリックし、Fuse Console アプリケーションがプロジェクトに追加されたことを確認します。
Fuse Console を開き、提供された URL をクリックした後にログインします。
ブラウザーに Authorize Access ページが表示され、必要なパーミッションが表示されます。
Allow selected permissions をクリックします。
ブラウザーで Fuse Console が開かれ、プロジェクトで実行されている Fuse の Pod が表示されます。
表示するアプリケーションの Connect をクリックします。
新しいブラウザーウィンドウが開かれ、Fuse Console にアプリケーションが表示されます。
2.3.1.2. OpenShift 3.11 の Fuse Console から単一の Fuse Pod を監視
OpenShift 3.11 で実行している Fuse Pod の Fuse Console を開きます。
OpenShift プロジェクトの Applications
Pods ビューで、Pod 名をクリックし、実行している Fuse Pod の詳細を表示します。このページの右側に、コンテナーテンプレートの概要が表示されます。 このビューの Open Java Console リンクをクリックし、Fuse Console を開きます。
注記Pod ビューで Fuse Console へのリンクを表示するよう OpenShift を設定するには、Fuse on OpenShift イメージを実行している Pod が
jolokia
に設定された name 属性内で TCP ポートを宣言する必要があります。{ "kind": "Pod", [...] "spec": { "containers": [ { [...] "ports": [ { "name": "jolokia", "containerPort": 8778, "protocol": "TCP" }
2.3.1.3. コマンドラインからの Fuse Console のデプロイ
表2.1「Fuse Console テンプレート」は、Fuse アプリケーションのデプロイメントのタイプに応じて、コマンドラインから Fuse Console をデプロイするために使用する OpenShift 3.1 テンプレートについて説明しています。
タイプ | 説明 |
---|---|
| Fuse Console は、複数の namespace またはプロジェクトにまたがってデプロイされた Fuse アプリケーションを検出し、接続することができます。このテンプレートをデプロイするには、OpenShift の cluster-admin ロールが必要です。 |
| このテンプレートは、Fuse Console の現在の OpenShift プロジェクト (namespace) へのアクセスを制限するため、単一のテナントデプロイメントとして動作します。このテンプレートをデプロイするには、現在の OpenShift プロジェクトの admin ロールが必要です。 |
任意で以下のコマンドを実行すると、すべてのテンプレートのパラメーターのリストを表示できます。
oc process --parameters -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.0.fuse-760043-redhat-00003/fis-console-namespace-template.json
手順
コマンドラインから Fuse Console をデプロイするには、以下を行います。
以下のコマンドの 1 つを実行して、Fuse Console テンプレートをベースとした新しいアプリケーションを作成します。コマンドの myproject はプロジェクトの名前に置き換えます。
Fuse Console の cluster テンプレートの場合は、以下のようになります。
myhost
は Fuse Console にアクセスするホストの名前になります。oc new-app -n myproject -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.0.fuse-760043-redhat-00003/fis-console-cluster-template.json -p ROUTE_HOSTNAME=myhost
Fuse Console の namespace テンプレートの場合は以下のようになります。
oc new-app -n myproject -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.0.fuse-760043-redhat-00003/fis-console-namespace-template.json
注記namespace テンプレートの route_hostname パラメーターは OpenShift によって自動的に生成されるため、省略することが可能です。
以下のコマンドを実行して、Fuse Console デプロイメントの状態と URL を取得します。
oc status
- ブラウザーから Fuse Console にアクセスするには、提供される URL (例: https://fuse-console.192.168.64.12.nip.io) を使用します。