4.2. クラスターからレジストリーへの直接アクセス
内部ルートを使用して、クラスター内からレジストリーにアクセスできます。
手順
名前を取得してノードにアクセスします。
$ oc get nodes$ oc debug nodes/<node_name>ノードで
ocやpodmanなどのツールへのアクセスを有効にするには、ルートディレクトリーを/hostに変更します。コマンドを実行すると、成功出力にLogin Succeeded!と表示されます。sh-4.2# chroot /hostアクセストークンを使用してコンテナーイメージレジストリーにログインします。
sh-4.2# oc login -u kubeadmin -p <password_from_install_log> https://api-int.<cluster_name>.<base_domain>:6443sh-4.2# podman login -u kubeadmin -p $(oc whoami -t) image-registry.openshift-image-registry.svc:5000注記ユーザー名にはほぼ任意の値を渡すことができます。トークンには必要な情報がすべて含まれています。コロンを含むユーザー名を渡すと、ログインに失敗します。
Image Registry Operator は
default-route-openshift-image-registry.<cluster_name>などのルートを作成します。レジストリーに対して
podman pullおよびpodman push操作を実行します。次のコマンド例は、これらの操作を示しています。任意のイメージをプルします。
sh-4.2# podman pull <name.io>/<image>重要任意のイメージをプルできますが、system:registry ロールを追加している場合は、各自のプロジェクトにあるレジストリーにのみイメージをプッシュすることができます。
新規イメージに
<registry_ip>:<port>/<project>/<image>形式でタグ付けします。たとえば、172.30.124.220:5000/openshift/image。プロジェクト名は、イメージを正しくレジストリーに配置し、これに後でアクセスできるようにするために OpenShift Container Platform の プル仕様 に表示される必要があります。sh-4.2# podman tag <name.io>/<image> image-registry.openshift-image-registry.svc:5000/openshift/<image>注記指定されたプロジェクトについて
system:image-builderロールを持っている必要があります。このロールにより、ユーザーはイメージの書き出しやプッシュを実行できます。そうでない場合は、次の手順のpodman pushが失敗します。これをテストするには、新規プロジェクトを作成し、イメージをプッシュできます。新しくタグ付けされたイメージをレジストリーにプッシュします。
sh-4.2# podman push image-registry.openshift-image-registry.svc:5000/openshift/<image>注記イメージを内部レジストリーにプッシュする場合は、リポジトリー名に
<project>/<name>形式を使用する必要があります。リポジトリー名に複数のプロジェクトレベルを使用すると、認証エラーが発生します。