5.3. ミラーホストの準備
イメージミラーリングに oc-mirror プラグイン v2 を使用するには、プラグインをインストールし、コンテナーイメージの認証情報を含むファイルを作成して、Red Hat からミラーにミラーリングできるようにする必要があります。
5.3.1. oc-mirror OpenShift CLI プラグインのインストール リンクのコピーリンクがクリップボードにコピーされました!
非接続環境でイメージセットを管理するには、oc-mirror OpenShift CLI プラグインをインストールします。
前提条件
OpenShift CLI (
oc) がインストールされている。完全な非接続環境でイメージセットをミラーリングする場合は、次の点を確認してください。- インターネットにアクセスできるホストに oc-mirror プラグインをインストールした。
- 非接続環境のホストが、ターゲットミラーレジストリーにアクセスできる。
-
oc-mirror を使用するオペレーティングシステムで、
umaskパラメーターを0022に設定した。 - 使用している RHEL バージョンに適したバイナリーをインストールした。
手順
oc-mirror CLI プラグインをダウンロードします。
- OpenShift Cluster Manager の ダウンロード ページに移動します。
- 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 v2 のプラグインが正常にインストールされていることを確認します。
$ oc mirror --v2 --help
5.3.2. イメージのミラーリングを可能にする認証情報の設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat からミラーにイメージをミラーリングできるように、コンテナーイメージレジストリーの認証情報ファイルを作成します。インストールホストで以下の手順を実行します。
クラスターのインストール時に、このイメージレジストリー認証情報ファイルをプルシークレットとして使用しないでください。クラスターのインストール時にこのファイルを指定すると、クラスター内のすべてのマシンにミラーレジストリーへの書き込みアクセスが付与されます。
このプロセスでは、ミラーレジストリーのコンテナーイメージレジストリーへの書き込みアクセスがあり、認証情報をレジストリープルシークレットに追加する必要があります。
前提条件
- 非接続環境で使用するミラーレジストリーを設定した。
- イメージをミラーリングするミラーレジストリー上のイメージリポジトリーの場所を特定している。
- イメージのイメージリポジトリーへのアップロードを許可するミラーレジストリーアカウントをプロビジョニングしている。
手順
-
registry.redhat.ioプルシークレットを Red Hat OpenShift Cluster Manager からダウンロードします。 JSON 形式でプルシークレットのコピーを作成します。
$ cat ./pull-secret | jq . > <path>/<pull_secret_file_in_json>プルシークレットを保存するディレクトリーへのパスおよび作成する 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" } } }$XDG_RUNTIME_DIR/containersディレクトリーが存在しない場合は、次のコマンドを入力して作成します。$ mkdir -p $XDG_RUNTIME_DIR/containers-
プルシークレットファイルを
$XDG_RUNTIME_DIR/containers/auth.jsonとして保存します。
次のコマンドを実行して、ミラーレジストリーの base64 でエンコードされたユーザー名とパスワードまたはトークンを生成します。
$ echo -n '<user_name>:<password>' | base64 -w0<user_name>および<password>には、レジストリーに設定したユーザー名およびパスワードを指定します。出力例
BGVtbYk3ZHAtqXs=JSON ファイルを編集し、レジストリーを記述するセクションをこれに追加します。
"auths": { "<mirror_registry>": { "auth": "<credentials>", "email": "you@example.com" } },-
<
mirror_registry> 値については、レジストリードメイン名と、ミラーレジストリーがコンテンツを提供するために使用するポートをオプションで指定します。たとえば、registry.example.comまたはregistry.example.com:8443です。 -
<
credentials> 値については、ミラーレジストリーの base64 でエンコードされたユーザー名およびパスワードを指定します。
変更済みのプルシークレットの例
{ "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" } } }-
<