4.5. ミラーホストの準備
oc-mirror プラグインを使用してイメージをミラーリングする前に、プラグインをインストールし、コンテナーイメージレジストリーの認証情報ファイルを作成して、Red Hat からお使いのミラーへのミラーリングを許可する必要があります。
4.5.1. oc-mirror OpenShift CLI プラグインのインストール リンクのコピーリンクがクリップボードにコピーされました!
oc-mirror OpenShift CLI プラグインを使用してレジストリーイメージをミラーリングするには、プラグインをインストールする必要があります。完全な非接続環境でイメージセットをミラーリングする場合は、インターネットにアクセスできるホストと、ミラーレジストリーにアクセスできる非接続環境のホストに oc-mirror プラグインをインストールしてください。
前提条件
-
OpenShift CLI (
oc) がインストールされている。
手順
oc-mirror CLI プラグインをダウンロードします。
- OpenShift Cluster Manager Hybrid Cloud Console の ダウンロード ページに移動します。
- OpenShift 切断インストールツール セクションで、OpenShift Client (oc) ミラープラグイン の ダウンロード をクリックしてファイルを保存します。
アーカイブを抽出します。
$ tar xvzf oc-mirror.tar.gz必要に応じて、プラグインファイルを更新して実行可能にします。
$ chmod +x oc-mirror注記oc-mirrorファイルの名前を変更しないでください。ファイルを
PATHに配置して、oc-mirror CLI プラグインをインストールします (例:/usr/local/bin):。$ sudo mv oc-mirror /usr/local/bin/.
検証
oc mirror helpを実行して、プラグインが正常にインストールされたことを確認します。$ oc mirror help
4.5.2. イメージのミラーリングを可能にする認証情報の設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat からミラーへのイメージのミラーリングを可能にするコンテナーイメージレジストリーの認証情報ファイルを作成します。
クラスターのインストール時に、このイメージレジストリー認証情報ファイルをプルシークレットとして使用しないでください。クラスターのインストール時にこのファイルを指定すると、クラスター内のすべてのマシンにミラーレジストリーへの書き込みアクセスが付与されます。
このプロセスでは、ミラーレジストリーのコンテナーイメージレジストリーへの書き込みアクセスがあり、認証情報をレジストリープルシークレットに追加する必要があります。
前提条件
- 非接続環境で使用するミラーレジストリーを設定した。
- イメージをミラーリングするミラーレジストリー上のイメージリポジトリーの場所を特定している。
- イメージのイメージリポジトリーへのアップロードを許可するミラーレジストリーアカウントをプロビジョニングしている。
手順
インストールホストで以下の手順を実行します。
-
Red Hat OpenShift Cluster Manager サイトの Pull Secret ページから
registry.redhat.ioプルシークレットをダウンロードします。 JSON 形式でプルシークレットのコピーを作成します。
$ cat ./pull-secret | jq . > <path>/<pull_secret_file_in_json>1 - 1
- プルシークレットを保存するフォルダーへのパスおよび作成する JSON ファイルの名前を指定します。
ファイルの内容は以下の例のようになります。
{ "auths": { "cloud.openshift.com": { "auth": "b3BlbnNo...", "email": "you@example.com" }, "quay.io": { "auth": "b3BlbnNo...", "email": "you@example.com" }, "registry.connect.redhat.com": { "auth": "NTE3Njg5Nj...", "email": "you@example.com" }, "registry.redhat.io": { "auth": "NTE3Njg5Nj...", "email": "you@example.com" } } }ファイルを、
~/.docker/config.jsonまたは$XDG_RUNTIME_DIR/containers/auth.jsonとして保存します。.dockerまたは$XDG_RUNTIME_DIR/containersディレクトリーが存在しない場合は、次のコマンドを入力して作成します。$ mkdir -p <directory_name>この場合の
<directory_name>は、~/.dockerまたは$XDG_RUNTIME_DIR/containersのいずれかです。次のコマンドを入力して、プルシークレットを適切なディレクトリーにコピーします。
$ cp <path>/<pull_secret_file_in_json> <directory_name>/<auth_file>この場合の
<directory_name>は~/.dockerまたは$XDG_RUNTIME_DIR/containers、<auth_file>はconfig.jsonまたはauth.jsonのいずれかです。
ミラーレジストリーの base64 でエンコードされたユーザー名およびパスワードまたはトークンを生成します。
$ echo -n '<user_name>:<password>' | base64 -w01 BGVtbYk3ZHAtqXs=- 1
<user_name>および<password>には、レジストリーに設定したユーザー名およびパスワードを指定します。
JSON ファイルを編集し、レジストリーについて記述するセクションをこれに追加します。
"auths": { "<mirror_registry>": {1 "auth": "<credentials>",2 "email": "you@example.com" } },ファイルは以下の例のようになります。
{ "auths": { "registry.example.com": { "auth": "BGVtbYk3ZHAtqXs=", "email": "you@example.com" }, "cloud.openshift.com": { "auth": "b3BlbnNo...", "email": "you@example.com" }, "quay.io": { "auth": "b3BlbnNo...", "email": "you@example.com" }, "registry.connect.redhat.com": { "auth": "NTE3Njg5Nj...", "email": "you@example.com" }, "registry.redhat.io": { "auth": "NTE3Njg5Nj...", "email": "you@example.com" } } }