15.4.8. RHCOS イメージのミラーリングが失敗する
非接続環境の OpenShift Virtualization 上の Hosted Control Plane の場合、oc-mirror で、Red Hat Enterprise Linux CoreOS (RHCOS) イメージを内部レジストリーに自動的にミラーリングできません。最初のホステッドクラスターを作成するときに、ブートイメージを内部レジストリーで利用できないため、Kubevirt 仮想マシンが起動しません。
この問題を解決するには、RHCOS イメージを手動で内部レジストリーにミラーリングします。
手順
次のコマンドを実行して内部レジストリー名を取得します。
$ oc get imagecontentsourcepolicy -o json \ | jq -r '.items[].spec.repositoryDigestMirrors[0].mirrors[0]'次のコマンドを実行してペイロードイメージを取得します。
$ oc get clusterversion version -ojsonpath='{.status.desired.image}'ホステッドクラスター上のペイロードイメージからブートイメージを含む
0000_50_installer_coreos-bootimages.yamlファイルを抽出します。<payload_image>は、ペイロードイメージの名前に置き換えます。以下のコマンドを実行します。$ oc image extract \ --file /release-manifests/0000_50_installer_coreos-bootimages.yaml \ <payload_image> --confirm次のコマンドを実行して RHCOS イメージを取得します。
$ cat 0000_50_installer_coreos-bootimages.yaml | yq -r .data.stream \ | jq -r '.architectures.x86_64.images.kubevirt."digest-ref"'RHCOS イメージを内部レジストリーにミラーリングします。
<rhcos_image>は、RHCOS イメージに置き換えます (例:quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d9643ead36b1c026be664c9c65c11433c6cdf71bfd93ba229141d134a4a6dd94)。<internal_registry>は、内部レジストリーの名前に置き換えます (例:virthost.ostest.test.metalkube.org:5000/localimages/ocp-v4.0-art-dev)。以下のコマンドを実行します。$ oc image mirror <rhcos_image> <internal_registry>ImageDigestMirrorSetオブジェクトを定義するrhcos-boot-kubevirt.yamlという名前の YAML ファイルを作成します。次の設定例を参照してください。apiVersion: config.openshift.io/v1 kind: ImageDigestMirrorSet metadata: name: rhcos-boot-kubevirt spec: repositoryDigestMirrors: - mirrors: - virthost.ostest.test.metalkube.org:5000/localimages/ocp-v4.0-art-dev1 source: quay.io/openshift-release-dev/ocp-v4.0-art-dev2 次のコマンドを実行して、
rhcos-boot-kubevirt.yamlファイルを適用し、ImageDigestMirrorSetオブジェクトを作成します。$ oc apply -f rhcos-boot-kubevirt.yaml