This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.2.2.2.2. ネットワークが制限された環境向けの OperatorHub の設定
クラスター管理者は、カスタム Operator カタログイメージを使用し、OLM および OperatorHub をネットワークが制限された環境でローカルコンテンツを使用するように設定できます。この例では、以前にビルドされ、サポートされているレジストリーにプッシュされたカスタム redhat-operators カタログイメージを使用します。
前提条件
- ネットワークアクセスが無制限の Linux ワークステーション
- サポートされているレジストリーにプッシュされるカスタム Operator カタログイメージ
-
ocversion 4.3.5+ -
podmanversion 1.4.4+ - Docker v2-2 をサポートするミラーレジストリーへのアクセス
プライベートレジストリーを使用している場合、後続の手順で使用するために
REG_CREDS環境変数をレジストリー認証情報のファイルパスに設定します。たとえばpodmanCLI の場合は、以下のようになります。REG_CREDS=${XDG_RUNTIME_DIR}/containers/auth.json$ REG_CREDS=${XDG_RUNTIME_DIR}/containers/auth.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
disableAllDefaultSources: trueを仕様に追加してデフォルトの OperatorSource を無効にします。oc patch OperatorHub cluster --type json \ -p '[{"op": "add", "path": "/spec/disableAllDefaultSources", "value": true}]'$ oc patch OperatorHub cluster --type json \ -p '[{"op": "add", "path": "/spec/disableAllDefaultSources", "value": true}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、OpenShift Container Platform のインストール時にデフォルトで設定されるデフォルトの OperatorSource が無効になります。
oc adm catalog mirrorコマンドは、カスタム Operator カタログイメージのコンテンツを抽出し、ミラーリングに必要なマニフェストを生成します。以下のいずれかを選択できます。- コマンドのデフォルト動作で、マニフェストの生成後にすべてのイメージコンテンツをミラーレジストリーに自動的にミラーリングできるようにします。または、
-
--manifests-onlyフラグを追加して、ミラーリングに必要なマニフェストのみを生成しますが、これにより、イメージコンテンツがレジストリーに自動的にミラーリングされる訳ではありません。これは、ミラーリングする内容を確認するのに役立ちます。また、コンテンツのサブセットのみが必要な場合に、マッピングの一覧に変更を加えることができます。次に、そのファイルをoc image mirrorコマンドで使用し、後のステップでイメージの変更済みの一覧をミラーリングできます。
ネットワークアクセスが無制限のワークステーションで、以下のコマンドを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Operator カタログイメージを指定します。
- 2
- オプション: 必要な場合は、レジストリー認証情報ファイルの場所を指定します。
- 3
- オプション: ターゲットレジストリーの信頼を設定しない場合は、
--insecureフラグを追加します。 - 4
- オプション: カタログは複数のアーキテクチャーおよびオペレーティングシステムをサポートするイメージを参照する可能性があるため、アーキテクチャーおよびオペレーティングシステムでフィルターして、一 致するイメージのみをミラーリングするようにできます。使用できる値は、
linux/amd64、linux/ppc64le、およびlinux/s390xです。 - 5
- オプション: ミラーリングに必要なマニフェストのみを生成し、実際にはイメージコンテンツをレジストリーにミラーリングしません。
出力例
using database path mapping: /:/tmp/190214037 wrote database to /tmp/190214037 using database at: /tmp/190214037/bundles.db ...
using database path mapping: /:/tmp/190214037 wrote database to /tmp/190214037 using database at: /tmp/190214037/bundles.db1 ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- コマンドで生成される一時的なデータベース。
コマンドの実行後に、
<image_name>-manifests/ディレクトリーが現在のディレクトリーに作成され、以下のファイルが生成されます。-
これにより、
imageContentSourcePolicy.yamlファイルは ImageContentSourcePolicy オブジェクトを定義します。このオブジェクトは、このオブジェクトは、ノードを Operator マニフェストおよびミラーリングされたレジストリーに保存されるイメージ参照間で変換できるように設定します。 -
mapping.txtファイルには、すべてのソースイメージが含まれ、これはそれらのイメージをターゲットレジストリー内のどこにマップするかを示します。このファイルはoc image mirrorコマンドと互換性があり、ミラーリング設定をさらにカスタマイズするために使用できます。
直前の手順で
--manifests-onlyフラグを使用して、コンテンツのサブセットのみをミラーリングする場合は、以下を実行します。mapping.txtファイルのイメージの一覧を仕様に変更します。ミラーリングするイメージのサブセットの名前とバージョンが不明な場合は、以下の手順で確認します。oc adm catalog mirrorコマンドで生成された一時的なデータベースに対してsqlite3ツールを実行し、一般的な検索クエリーに一致するイメージの一覧を取得します。出力は、後にmapping.txtファイルを編集する方法を通知するのに役立ちます。たとえば、
clusterlogging.4.3の文字列のようなイメージの一覧を取得するには、以下を実行します。echo "select * from related_image \ where operatorbundle_name like 'clusterlogging.4.3%';" \ | sqlite3 -line /tmp/190214037/bundles.db$ echo "select * from related_image \ where operatorbundle_name like 'clusterlogging.4.3%';" \ | sqlite3 -line /tmp/190214037/bundles.db1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
oc adm catalog mirrorコマンドの直前の出力を参照し、データベースファイルのパスを見つけます。
出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 直前の手順で取得した結果を使用して
mapping.txtファイルを編集し、ミラーリングする必要のあるイメージのサブセットのみを追加します。たとえば、前述の出力例の
image値を使用して、mapping.txtファイルに以下の一致する行が存在することを確認できます。mapping.txtの一致するイメージマッピング。registry.redhat.io/openshift4/ose-logging-kibana5@sha256:aa4a8b2a00836d0e28aa6497ad90a3c116f135f382d8211e3c55f34fb36dfe61=<registry_host_name>:<port>/openshift4-ose-logging-kibana5:a767c8f0 registry.redhat.io/openshift4/ose-oauth-proxy@sha256:6b4db07f6e6c962fc96473d86c44532c93b146bbefe311d0c348117bf759c506=<registry_host_name>:<port>/openshift4-ose-oauth-proxy:3754ea2b
registry.redhat.io/openshift4/ose-logging-kibana5@sha256:aa4a8b2a00836d0e28aa6497ad90a3c116f135f382d8211e3c55f34fb36dfe61=<registry_host_name>:<port>/openshift4-ose-logging-kibana5:a767c8f0 registry.redhat.io/openshift4/ose-oauth-proxy@sha256:6b4db07f6e6c962fc96473d86c44532c93b146bbefe311d0c348117bf759c506=<registry_host_name>:<port>/openshift4-ose-oauth-proxy:3754ea2bCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、これらのイメージのみをミラーリングする場合に、
mapping.txtファイルの他のすべてのエントリーを削除し、上記の 2 行のみを残します。
ネットワークアクセスが無制限のワークステーション上で、変更した
mapping.txtファイルを使用し、oc image mirrorコマンドを使用してイメージをレジストリーにミラーリングします。oc image mirror \ [-a ${REG_CREDS}] \ -f ./redhat-operators-manifests/mapping.txt$ oc image mirror \ [-a ${REG_CREDS}] \ -f ./redhat-operators-manifests/mapping.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow
ImageContentSourcePolicy を適用します。
oc apply -f ./redhat-operators-manifests/imageContentSourcePolicy.yaml
$ oc apply -f ./redhat-operators-manifests/imageContentSourcePolicy.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow カタログイメージを参照する CatalogSource オブジェクトを作成します。
仕様を以下のように変更し、これを
catalogsource.yamlファイルとして保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Operator カタログイメージを指定します。
このファイルを使用して CatalogSource オブジェクトを作成します。
oc create -f catalogsource.yaml
$ oc create -f catalogsource.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
以下のリソースが正常に作成されていることを確認します。
Pod を確認します。
oc get pods -n openshift-marketplace
$ oc get pods -n openshift-marketplaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE my-operator-catalog-6njx6 1/1 Running 0 28s marketplace-operator-d9f549946-96sgr 1/1 Running 0 26h
NAME READY STATUS RESTARTS AGE my-operator-catalog-6njx6 1/1 Running 0 28s marketplace-operator-d9f549946-96sgr 1/1 Running 0 26hCopy to Clipboard Copied! Toggle word wrap Toggle overflow CatalogSource を確認します。
oc get catalogsource -n openshift-marketplace
$ oc get catalogsource -n openshift-marketplaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME DISPLAY TYPE PUBLISHER AGE my-operator-catalog My Operator Catalog grpc 5s
NAME DISPLAY TYPE PUBLISHER AGE my-operator-catalog My Operator Catalog grpc 5sCopy to Clipboard Copied! Toggle word wrap Toggle overflow PackageManifest を確認します。
oc get packagemanifest -n openshift-marketplace
$ oc get packagemanifest -n openshift-marketplaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME CATALOG AGE etcd My Operator Catalog 34s
NAME CATALOG AGE etcd My Operator Catalog 34sCopy to Clipboard Copied! Toggle word wrap Toggle overflow
ネットワークが制限された環境の OpenShift Container Platform クラスター Web コンソールで、OperatorHub ページから Operator をインストールできます。