7.3.7. イメージの外部レジストリーからのインポート
アプリケーション開発者は oc import-image コマンドでイメージをインポートして imagestreams を作成でき、OpenShift Container Platform は外部レジストリーからのイメージインポートを許可または拒否するように設定できます。
手順
ユーザーがイメージをインポートできる許可されたレジストリーを設定するには、以下を
/etc/origin/master/master-config.yamlファイルに追加します。imagePolicyConfig: allowedRegistriesForImport: - domainName: docker.io - domainName: '\*.docker.io' - domainName: '*.redhat.com' - domainName: 'my.registry.example.com'- イメージを外部認証レジストリーからインポートするには、必要なプロジェクト内にシークレットを作成します。
推奨されていない場合でも、外部の認証済みレジストリーが非セキュアであるか、または証明書が信頼できない場合には、
oc import-imageコマンドを--insecure=trueオプションを指定して使用できます。外部の認証済みレジストリーがセキュアな場合、レジストリー証明書は、以下のようにレジストリーのインポートコントローラーを実行する際にマスターホストで信頼される必要があります。
/etc/pki/ca-trust/source/anchors/の証明書をコピーします。$ sudo cp <my.registry.example.com.crt> /etc/pki/ca-trust/source/anchors/<my.registry.example.com.crt>update-ca-trustコマンドを実行します。$ sudo update-ca-trustすべてのマスターホストでマスターサービスを再起動します。
$ sudo master-restart api $ sudo master-restart controllers外部レジストリーの証明書は OpenShift Container Platform レジストリーで信頼されます。
$ for i in pem openssl java; do oc create configmap ca-trust-extracted-${i} --from-file /etc/pki/ca-trust/extracted/${i} oc set volume dc/docker-registry --add -m /etc/pki/ca-trust/extracted/${i} --configmap-name=ca-trust-extracted-${i} --name ca-trust-extracted-${i} done警告現時点で、証明書をレジストリー Pod に追加するための正式な手順はありませんが、上記の回避策を使用できます。
この回避策では、これらのコマンドを実行するシステムですべての信頼される証明書を使って
configmapsを作成するため、必要な証明書のみが信頼されるクリーンなシステムからこれを実行することが推奨されます。または、以下のように
Dockerfileを使用して、イメージを再ビルドするために適切な証明書を信頼できるようレジストリーイメージを変更します。FROM registry.redhat.io/openshift3/ose-docker-registry:v3.6 ADD <my.registry.example.com.crt> /etc/pki/ca-trust/source/anchors/ USER 0 RUN update-ca-trust extract USER 1001イメージを再ビルドし、これを
dockerレジストリーにプッシュし、そのイメージをレジストリーdeploymentconfigのspec.template.spec.containers["name":"registry"].imageとして使用します。$ oc patch dc docker-registry -p '{"spec":{"template":{"spec":{"containers":[{"name":"registry","image":"*myregistry.example.com/openshift3/ose-docker-registry:latest*"}]}}}}'
imagePolicyConfig 設定をインストールに追加するには、openshift_master_image_policy_config 変数を、以下のようにすべての imagePolicyConfig 設定を含む json でフォーマットされた文字列で使用できます。
openshift_master_image_policy_config={"imagePolicyConfig":{"allowedRegistriesForImport":[{"domainName":"docker.io"},{"domainName":"\*.docker.io"},{"domainName":"*.redhat.com"},{"domainName":"*my.registry.example.com*"}]}}
ImagePolicy についての詳細は、ImagePolicy 受付プラグイン のセクションを参照してください。