Runtime Fabric では、独自のレジストリを使用して Runtime Fabric をインストールして管理し、Kubernetes でアプリケーションを実行するために必要な Docker イメージを保存します。セキュリティポリシーで、自分で管理しているレジストリから Docker イメージを取得することが要求されている場合は、これらの Docker イメージを取得して保存するようにローカルレジストリをセットアップできます。
ローカルレジストリのサポートに関する制限事項
Mule Docker イメージ (アプリケーションデプロイメントの管理用) と Runtime Fabric ソフトウェアイメージ (Runtime Fabric ソフトウェアの更新またはインストール用) を保存するために、すべての Runtime Fabric サポート対象プラットフォームベンダーにわたってローカルレジストリを設定できます。次の詳細と制限事項は、Mule Docker イメージと Runtime Fabric ソフトウェアイメージの両方に適用されます。
| OpenShift 上の Runtime Fabric Operator のインストールまたは管理にローカルレジストリを使用することはできません。 |
-
Runtime Fabric コマンドラインユーティリティ (
rtfctl) バージョン 0.3.150 以降を使用できます。rtfctl を使用すると、デフォルトで最新のバージョンに Runtime Fabric エージェントがインストールされます。 -
Runtime Fabric のインストールとローカルレジストリの設定には Helm を使用できます。
-
ローカルレジストリを使用できるのは、バージョン 1.12.0 以降の新しい Runtime Fabric インスタンスを作成する場合のみです。
ローカルレジストリをセットアップする場合は、Runtime Fabric を再インストールせずに 1.12.0 より後のバージョンにアップグレードできます。
既存の Runtime Fabric インスタンスにローカルレジストリを追加するには、インストールが Helm ベースのHelm 管理 Runtime Fabric への移行であることを確認し、次のセクションのステップを実行してローカルレジストリを追加します。
-
ローカルレジストリで使用するために Runtime Fabric インスタンスを作成した場合、
rtf-runtime-registry エンドポイントを使用するように後から再設定することはできません。rtf-runtime-registry エンドポイントを使用するには、標準のインストール手順に従って新しい Runtime Fabric インスタンスをインストールする必要があります。 -
お客様はローカルレジストリを必要な連動関係と同期する責任を負います。
-
アプリケーションに必要なサードパーティ連動関係を同期します。
MuleSoft では、サードパーティの連動関係とイメージを同期するための追加のソフトウェアを提供していません。デプロイメントを始める前に、Mule アプリケーションのすべての連動関係イメージをローカルレジストリにプッシュしてください。
-
認証が必要なローカルレジストリを使用している場合、異なる名前空間の間でのプルシークレットの同期と伝播は各自の責任となります。または、シークレットで次の表示ラベルを使用している場合は、Runtime Fabric により異なる名前空間の間でプルシークレットを同期できます。
labels:
rtf.mulesoft.com/synchronized: "true"
-
ローカルレジストリへのアクセス権を認証する必要がある場合は、 対応するログイン情報が
rtf 名前空間で Kubernetes シークレットとして設定されていることを確認してください。Runtime Fabric をインストールするときに設定済みのシークレットの名前が必要になります。
ローカルレジストリへの Mule Runtime の連動関係とイメージの同期
アプリケーションのデプロイメントに使用する Mule Runtime バージョンをレジストリ内で同期するには、「Mule runtime patch updates for Runtime Fabric Release Notes (Runtime Fabric リリースノートの Mule Runtime パッチ更新)」を参照してください。イメージの場所は次の形式に従います: rtf-runtime-registry.kprod.msap.io/mulesoft/。
ローカルレジストリへの Runtime Fabric コアソフトウェアの連動関係とイメージの同期
Runtime Fabric をインストールするには、まず連動関係イメージをローカルレジストリに同期する必要があります。同期を実行するには自動的にスクリプトを実行するか手動でコマンドを実行します。
-
自動同期
-
手動同期
連動関係イメージを自動的に同期するには、docker、curl、jq ツールを使用する bash スクリプトを実行します。
| 自動レジストリ同期は、Runtime Fabric バージョン 2.6.0 以降で使用できます。このスクリプトを使用して以前の連動関係を取得することはできません。 |
Runtime Manager のアクセス管理権限が [Read Runtime Fabric (Runtime Fabric の読み取り)] に設定されていることを確認します。この設定により、組織内で Runtime Fabric を照会できます。
-
Unix シェルで、次のスクリプトを実行します。
agent-version、authorization-token、mulesoft-docker-server、およびその他のパラメーター値は適宜置き換えます。##!/usr/bin/env bash dependencies=$(curl <platform-url>/runtimefabric/api/agentmanifests/<agent-version> -H 'Authorization: bearer <authorization-token>' | jq -c '.dependencies |.[] | select(.provider | contains("generic")) | "\(.artifact):\(.version)"' | sed 's/"//g') for i in $dependencies do echo "Processing $i" docker pull <mulesoft-docker-server>/mulesoft/$i docker tag <mulesoft-docker-server>/mulesoft/$i <local-docker-server>/mulesoft/$i docker push <local-docker-server>/mulesoft/$i doneTable 1. スクリプトパラメーター パラメーター 説明 platform-urlAnypoint Platform の URL。https://anypoint.mulesoft.com または https://eu1.anypoint.mulesoft.com など。
agent-version同期に必要な Runtime Fabric エージェントのリリースバージョン。
authorization-token同期を実行するために接続アプリケーションを使用するのに必要な認証トークン。このトークンを使用すると、リンクは接続アプリケーションページにリダイレクトします。
mulesoft-docker-server同期に必要な MuleSoft Docker サーバー。
US コントロールプレーン:rtf-runtime-registry.kprod.msap.io
EU コントロールプレーン:rtf-runtime-registry.kprod-eu.msap.io
連動関係イメージを手動で同期する手順は次のとおりです。
-
自分の非公開コンテナレジストリにログインして次のコマンドを実行します。
docker-server は適宜置き換えます。US コントロールプレーンの場合:
# docker pull rtf-runtime-registry.kprod.msap.io/mulesoft/rtf-agent:v1.12.0 # docker tag rtf-runtime-registry.kprod.msap.io/mulesoft/rtf-agent:v1.12.0 <docker-server>/mulesoft/rtf-agent:v1.12.0 # docker push <docker-server>/mulesoft/rtf-agent:v1.12.0EU コントロールプレーンの場合:
# docker pull rtf-runtime-registry.kprod-eu.msap.io/mulesoft/rtf-agent:v1.12.0 # docker tag rtf-runtime-registry.kprod-eu.msap.io/mulesoft/rtf-agent:v1.12.0 <docker-server>/mulesoft/rtf-agent:v1.12.0 # docker push <docker-server>:5000/mulesoft/rtf-agent:v1.12.0
Runtime Fabric 向けのローカルレジストリの設定
ローカルレジストリをセットアップするには、レジストリを同期するために必要なログイン情報を収集して追加する必要があります。
始める前に
次の作業を必ず実行しておいてください。
-
非公開の Docker イメージレジストリをセットアップ、設定、およびテストします。
-
Runtime Fabric のインストールに必要なすべての Docker イメージをローカルレジストリに同期します。
ご使用の Runtime Fabric バージョンの必須の連動関係については、「Runtime Fabric リリースノート」を参照してください。
連動関係バージョンは Runtime Fabric バージョンに固有です。
rtfctl または helm とローカルレジストリを使用して Runtime Fabric をインストールするには、次のいずれかのオプションを選択します。
-
RTFCTL
-
Helm
-
rtfctl コマンドラインユーティリティバージョン 0.3.150 以降をダウンロードしてインストールします。 -
rtf-runtime-registry ログイン情報を取得します。# rtfctl get registry-credentials <activation-data>このコマンドにより、現在のシェル環境で
RTF_IMAGE_REGISTRY_ENDPOINT、RTF_IMAGE_REGISTRY_USER、RTF_IMAGE_REGISTRY_PASSWORD が設定されます。 -
次のコマンドを実行して、
rtf-runtime-registry への Docker ログインが成功することを確認します。# eval $(rtfctl get registry-credentials <activation-data>) # docker login $RTF_IMAGE_REGISTRY_ENDPOINT --username $RTF_IMAGE_REGISTRY_USER --password $RTF_IMAGE_REGISTRY_PASSWORDログインが成功したというメッセージが表示されます。
-
ローカルレジストリにコンテナイメージを同期します。
-
Runtime Fabric リリースノートでパブリッシュされているバージョンに基づいて、他のすべての連動関係イメージ (resourceFetcher、clusterOps など) でステップ 3 を繰り返します。
-
レジストリへのアクセスに認証を使用している場合は、rtf 名前空間で必須のシークレットを作成します。
# kubectl create namespace rtf # kubectl create secret docker-registry regcred --namespace=rtf --docker-server=<docker_server> --docker-username=<docker_username> --docker-email=<docker_email> --docker-password=<docker_password> # kubectl label secret regcred rtf.mulesoft.com/synchronized=true -n rtf -
Runtime Fabric インストールを最終処理して、ローカルレジストリから取得するように設定します。
# rtfctl install ‘<activation_data>’ --image-pull-registry <docker-server>または、レジストリへのアクセスに認証を使用している場合は、次のコマンドを使用します。
# rtfctl install ‘<activation_data>’ --image-pull-registry <docker-server> --image-pull-secret <your-local-reg-secret>このコマンドにより、Runtime Fabric でローカルレジストリ URL と
image-pull-secret 値の必要なオーバーライドが作成され、Runtime Fabric がアップグレード後も引き続きローカルレジストリからイメージを取得するようになります。 -
レジストリへのアクセスに認証を使用している場合は、インストールの完了後に、RTF 名前空間とアプリケーションをデプロイする他の名前空間でプルシークレットを再作成する必要があります。
-
Mule ライセンスキーの挿入などの追加の手順については、インストール手順を参照してください。
rtfctl uninstall コマンドにより、インストール中に指定したプルシークレットが削除されます。
rtfctl を使用してバックアップと復元の手順を実行するときに、バックアップはローカルレジストリ URL とプルシークレットを参照します。
-
ローカルレジストリにコンテナイメージを同期します。
-
Runtime Manager で、Helm パスを選択し、画面プラットフォーム上の手順に従います。
-
非公開の
docker-server、docker-username、docker-password を取得します。 -
Runtime Manager で Helm パスの手順に従って Unix シェルで次のコマンドを実行して Docker サーバーの名前、ユーザー名、パスワードを使用したシークレットを作成します。
kubectl create secret docker-registry rtf-pull-secret --namespace <rtf-namespace> --docker-server=<docker-servername> --docker-username=<docker-username --docker-password=<docker-password> --docker-email=<docker-email>
-
Helm パスの手順に従って
values.yml ファイルをダウンロードし、その値を変更できるようにします。非公開のレジストリ設定の場合、ローカル Docker サーバーを使用して rtfRegistry を更新し、pullSecretName パラメーターを更新します。 -
Helm パスの手順を続行し、Kubernetes クラスターに Runtime Fabric をインストールします。