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