1.2. OpenShift 4.x での Fuse Console の設定
OpenShift 4.x では、Fuse Console の設定に、セキュリティーのセキュア化、インストール、およびデプロイが必要になります。
まず、クライアント証明書を生成して、「OpenShift 4.x で Fuse Console をセキュア化するための証明書を生成」 の説明どおりに Fuse Console をセキュア化できるようにします。
クライアント証明書を生成した後、OpenShift クラスターの複数の namespace または特定の namespace にある Fuse アプリケーションにアクセスするために、コマンドラインと Fuse Console テンプレートの 1 つを使用して Fuse Console をインストールおよびデプロイします。
- Fuse Console のユーザー管理は、OpenShift によって処理されます。
- ロールベースアクセス制御 (デプロイ後に Fuse Console にアクセスするユーザーの場合) は現在 Fuse on OpenShift では使用できません。
1.2.1. OpenShift 4.x で Fuse Console をセキュア化するための証明書を生成 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift 4.x で、Fuse Console プロキシーと Jolokia エージェントとの間の接続をセキュアにするには、Fuse Console をデプロイする前にクライアント証明書を生成する必要があります。サービス署名認証局の秘密鍵を使用して、クライアント証明書を署名する必要があります。
各 OpenShift クラスターに別のクライアント証明書を生成し、署名する必要があります。複数のクラスターに同じ証明書を使用しないでください。
前提条件
-
OpenShift クラスターにアクセス可能な
cluster admin権限がある。 複数の OpenShift クラスターの証明書を生成し、現在のディレクトリーに別のクラスターの証明書を生成している場合は、以下のいずれかを実行して、現在のクラスターに別の証明書を生成するようにします。
-
現在のディレクトリーから既存の証明書ファイル (
ca.crt、ca.key、およびca.srl) を削除します。 別の作業ディレクトリーに移動します。たとえば、現在の作業ディレクトリーの名前が
cluster1の場合、新しいcluster2ディレクトリーを作成し、作業ディレクトリーをそのディレクトリーに変更します。mkdir ../cluster2cd ../cluster2
-
現在のディレクトリーから既存の証明書ファイル (
手順
cluster admin 権限を持つユーザーとして OpenShift にログインします。
oc login -u <user_with_cluster_admin_role>
oc login -u <user_with_cluster_admin_role>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、サービス署名認証局のキーを取得します。
以下を実行して、証明書を取得します。
oc get secrets/signing-key -n openshift-service-ca -o "jsonpath={.data['tls\.crt']}" | base64 --decode > ca.crtoc get secrets/signing-key -n openshift-service-ca -o "jsonpath={.data['tls\.crt']}" | base64 --decode > ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を実行して、秘密鍵を取得します。
oc get secrets/signing-key -n openshift-service-ca -o "jsonpath={.data['tls\.key']}" | base64 --decode > ca.keyoc get secrets/signing-key -n openshift-service-ca -o "jsonpath={.data['tls\.key']}" | base64 --decode > ca.keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Kubernetes certificates administration の説明にしたがって、
easyrsa、openssl、またはcfsslを使用して、クライアント証明書を生成します。以下に、openssl を使用したコマンドの例を示します。
秘密鍵を生成します。
openssl genrsa -out server.key 2048
openssl genrsa -out server.key 2048Copy to Clipboard Copied! Toggle word wrap Toggle overflow CSR 設定ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CSR を生成します。
openssl req -new -key server.key -out server.csr -config csr.conf
openssl req -new -key server.key -out server.csr -config csr.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 署名済みの証明書を発行します。
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 10000 -extensions v3_ext -extfile csr.conf
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 10000 -extensions v3_ext -extfile csr.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow
次のステップ
コマンドラインを使用した OpenShift 4.x での Fuse Console のインストールおよびデプロイ で説明されているように、Fuse Console のシークレットを作成するには、この証明書が必要です。
1.2.2. コマンドラインを使用した OpenShift 4.x での Fuse Console のインストールおよびデプロイ リンクのコピーリンクがクリップボードにコピーされました!
OpenShift 4.x では、次のデプロイメントオプションの 1 つを選択して、コマンドラインから Fuse Console をインストールおよびデプロイできます。
- cluster - Fuse Console は、OpenShift クラスターで複数の namespace (プロジェクト) 全体にデプロイされた Fuse アプリケーションを検索し、接続することができます。このテンプレートをデプロイするには、OpenShift クラスターの管理者ロールが必要です。
- namespace - Fuse Console は特定の OpenShift プロジェクト (namespace) にアクセスできます。このテンプレートをデプロイするには、OpenShift プロジェクトの管理者ロールが必要です。
Fuse Console テンプレートのパラメーターリストを表示するには、以下の OpenShift コマンドを実行します。
oc process --parameters -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.fuse-750056-redhat-00006/fuse-console-namespace-os4.json
oc process --parameters -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.fuse-750056-redhat-00006/fuse-console-namespace-os4.json
前提条件
- Fuse Console をインストールおよびデプロイする前に、OpenShift 4.x で Fuse Console をセキュア化するための証明書の生成 の説明どおりに、サービス署名認証局で署名されたクライアント証明書を生成する必要があります。
-
OpenShift クラスターの
cluster adminロールが必要です。 - OpenShift 4.x サーバーでの Fuse イメージストリームおよびテンプレートのインストール の説明どおりに Fuse Console イメージストリーム (およびその他の Fuse イメージストリーム) がインストールされている必要があります。
手順
以下のコマンドを実行してすべてのテンプレートのリストを取得し、Fuse Console イメージストリームがインストールされていることを確認します。
oc get template -n openshift
oc get template -n openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 任意で、すでにインストールされているイメージストリームを新しいリリースタグで更新する場合は、以下のコマンドを使用して openshift namespace に Fuse Console イメージをインポートします。
oc import-image fuse7/fuse7-console:1.5 --from=registry.redhat.io/fuse7/fuse-console:1.5 --confirm -n openshift
oc import-image fuse7/fuse7-console:1.5 --from=registry.redhat.io/fuse7/fuse-console:1.5 --confirm -n openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の Fuse Console テンプレートの 1 つを、raw 形式の
https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.fuse-750056-redhat-00006から任意のローカルディレクトリーにダウンロードします(例: mytemp)。-
クラスターテンプレート:
fuse-console-cluster-os4.json -
namespace テンプレート:
fuse-console-namespace-os4.json
-
クラスターテンプレート:
namespace テンプレートの場合は、次のステップに進みます。
クラスターテンプレートの場合、任意のエディターで
fuse-console-cluster-os4.jsonファイルのローカルコピーを編集し、"grantMethod": "auto"属性をOAuthClientセクションに追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、Fuse Console の APP_NAME の値を取得します。コマンドの mytemp は、Fuse Console テンプレートが含まれるローカルディレクトリーのパスに置き換えます。
クラスターテンプレートの場合:
oc process --parameters -f mytemp/fuse-console-cluster-os4.json
oc process --parameters -f mytemp/fuse-console-cluster-os4.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow Namespace テンプレートの場合:
oc process --parameters -f mytemp/fuse-console-namespace-os4.json
oc process --parameters -f mytemp/fuse-console-namespace-os4.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow
以下のコマンドを使用して、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
oc create secret tls APP_NAME-tls-proxying --cert server.crt --key server.keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、ローカルにコピーされた Fuse Console テンプレートをベースとした新しいアプリケーションを作成します。コマンドの myproject は OpenShift プロジェクトの名前、mytemp は Fuse Console テンプレートが含まれるローカルディレクトリーへのパス、myhost は Fuse Console にアクセスするホストの名前に置き換えます。
クラスターテンプレートの場合:
oc new-app -n myproject -f mytemp/fuse-console-cluster-os4.json -p ROUTE_HOSTNAME=myhost
oc new-app -n myproject -f mytemp/fuse-console-cluster-os4.json -p ROUTE_HOSTNAME=myhostCopy to Clipboard Copied! Toggle word wrap Toggle overflow Namespace テンプレートの場合:
oc new-app -n myproject -f mytemp/fuse-console-namespace-os4.json
oc new-app -n myproject -f mytemp/fuse-console-namespace-os4.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow
以下のコマンドを実行して、Fuse Console デプロイメントの状態と URL を取得します。
oc status
oc statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ブラウザーから Fuse Console にアクセスするには、6. で返される URL (例: https://fuse-console.192.168.64.12.nip.io) を使用します。
1.2.3. OpenShift 4.x での Fuse Console のアップグレード リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift 4.x では、Red Hat Fuse Operator などの Operator の更新が処理されます。詳細は、OpenShift ドキュメントの Operator を参照してください。
また、Operator の更新によってアプリケーションのアップグレードがトリガーされる可能性があります。アプリケーションのアップグレードの実行方法は、アプリケーションの設定によって異なります。
Fuse Console アプリケーションでは、アプリケーションカスタムリソース定義の .spec.version フィールドを編集して、これらのアプリケーションへのアップグレードをトリガーするタイミングを指定できます。
前提条件
- OpenShift クラスターの管理者権限が必要です。
手順
Fuse Console アプリケーションをアップグレードするには、以下を行います。
ターミナルウィンドウで、以下のコマンドを使用してアプリケーションカスタムリソース定義の
.spec.versionフィールドを変更します。oc patch <project-name> <custom-resource-name> --type='merge' -p '{"spec":{"version":"1.7.1"}}'oc patch <project-name> <custom-resource-name> --type='merge' -p '{"spec":{"version":"1.7.1"}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下に例を示します。
oc patch myproject example-fuseconsole --type='merge' -p '{"spec":{"version":"1.7.1"}}'oc patch myproject example-fuseconsole --type='merge' -p '{"spec":{"version":"1.7.1"}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションの状態が更新されたことを確認します。
oc get myproject
oc get myprojectCopy to Clipboard Copied! Toggle word wrap Toggle overflow 応答には、バージョン番号などのアプリケーションに関する情報が表示されます。
NAME AGE URL IMAGE example-fuseconsole 1m https://fuseconsole.192.168.64.38.nip.io docker.io/fuseconsole/online:1.7.1
NAME AGE URL IMAGE example-fuseconsole 1m https://fuseconsole.192.168.64.38.nip.io docker.io/fuseconsole/online:1.7.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow .spec.versionフィールドの値を変更すると、OpenShift によってアプリケーションが自動的に再デプロイされます。バージョンの変更によってトリガーされた再デプロイの状態をチェックするには、以下を実行します。
oc rollout status deployment.v1.apps/example-fuseconsole
oc rollout status deployment.v1.apps/example-fuseconsoleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 正常にデプロイされた場合は以下の応答が表示されます。
deployment "example-fuseconsole" successfully rolled out
deployment "example-fuseconsole" successfully rolled outCopy to Clipboard Copied! Toggle word wrap Toggle overflow