Runtime Fabric でのローカルレジストリの使用

Runtime Fabric では、独自のレジストリを使用して Runtime Fabric をインストールして管理し、Kubernetes でアプリケーションを実行するために必要な Docker イメージを保存します。セキュリティポリシーで、自分で管理しているレジストリから Docker イメージを取得することが要求されている場合は、これらの Docker イメージを取得して保存するようにローカルレジストリをセットアップできます。

ローカルレジストリのサポートに関する制限事項

ローカルレジストリのサポートに関する次の制限事項を確認してください。

OpenShift オペレーターのインストール中にローカルレジストリを使用することはできません。ただし、Mule アプリケーションを実行するために、OpenShift RTF でローカルレジストリを使用して、Mule Docker イメージを保存し、Runtime Fabric をインストールして管理することはできます。
  • Runtime Fabric コマンドラインユーティリティ (​rtfctl​)​ バージョン 0.3.150 以降を使用する必要があります。

  • ローカルレジストリを使用できるのは、バージョン 1.12.0 以降の新しい Runtime Fabric インスタンスを作成する場合のみです。

    ローカルレジストリをセットアップする場合は、Runtime Fabric を再インストールせずに 1.12.0 より後のバージョンにアップグレードできます。

    そのインストールを 1.12.0 以降にアップグレードする場合でも、ローカルレジストリを任意のバージョンの既存の Runtime Fabric インスタンスに追加することはできません。

  • ローカルレジストリで使用するために Runtime Fabric インスタンスを作成した場合、​rtf-runtime-registry​ エンドポイントを使用するように後から再設定することはできません。​rtf-runtime-registry​ エンドポイントを使用するには、標準のインストール手順に従って新しい Runtime Fabric インスタンスをインストールする必要があります。

  • レジストリと Runtime Fabric レジストリ間の同期については各自が責任を負うことになります。MuleSoft では、レジストリ間でイメージを同期するための追加のソフトウェアを提供していません。インストールを始める前に、ご使用のバージョンのすべての連動関係イメージをローカルレジストリにプッシュしてください。ご使用の Runtime Fabric バージョンの必須の連動関係については、​「Runtime Fabric リリースノート」​を参照してください。

  • 認証が必要なローカルレジストリを使用している場合、異なる名前空間の間でのプルシークレットの同期と伝播は各自の責任となります。または、シークレットで次の表示ラベルを使用している場合は、Runtime Fabric により異なる名前空間の間でプルシークレットを同期できます。

  labels:
    rtf.mulesoft.com/synchronized: "true"

Runtime Fabric で使用するローカルレジストリをセットアップする

ローカルレジストリをセットアップするには、レジストリを同期するために必要なログイン情報を収集して追加する必要があります。

始める前に

次の作業を必ず実行しておいてください。

  1. 非公開の Docker イメージレジストリをセットアップ、設定、およびテストします。

  2. Runtime Fabric のインストールに必要なすべての Docker イメージをローカルレジストリに同期します。

    ご使用の Runtime Fabric バージョンの必須の連動関係については、​「Runtime Fabric リリースノート」​を参照してください。

    連動関係バージョンは Runtime Fabric バージョンに固有です。
  3. rtfctl​ コマンドラインユーティリティ​バージョン 0.3.150 以降をダウンロードしてインストールします。

  4. Runtime Manager を使用して Runtime Fabric を作成​してアクティベーションデータを収集します。

ローカルレジストリを設定して Runtime Fabric をインストールする

  1. rtf-runtime-registry​ ログイン情報を取得します。

    # rtfctl get registry-credentials <activation-data>

    このコマンドにより、現在のシェル環境で ​RTF_IMAGE_REGISTRY_ENDPOINT​、​RTF_IMAGE_REGISTRY_USER​、​RTF_IMAGE_REGISTRY_PASSWORD​ が設定されます。

  2. 次のコマンドを実行して、​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

    ログインが成功したというメッセージが表示されます。

  3. イメージを取得して同期するには、自分の非公開コンテナレジストリにログインして次のコマンドを実行します。​<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.0

    EU コントロールプレーンの場合:

    # 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
  4. Runtime Fabric リリースノートでパブリッシュされているバージョンに基づいて、他のすべての連動関係イメージ (resourceFetcher、clusterOps など) でステップ 3 を繰り返します。

  5. レジストリへのアクセスに認証を使用している場合は、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
  6. 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 がアップグレード後も引き続きローカルレジストリからイメージを取得するようになります。

  7. レジストリへのアクセスに認証を使用している場合は、インストールの完了後に、RTF 名前空間とアプリケーションをデプロイする他の名前空間でプルシークレットを再作成する必要があります。

  8. Mule ライセンスキーの挿入などの追加の手順については、​インストール手順​を参照してください。

rtfctl uninstall​ コマンドにより、インストール中に指定したプルシークレットが削除されます。

rtfctl​ を使用してバックアップと復元の手順を実行するときに、バックアップはローカルレジストリ URL とプルシークレットを参照します。