5.2. クラスターからレジストリーへの直接アクセス

クラスター内からレジストリーにアクセスすることができます。

手順

内部ルートを使用して、クラスターからレジストリーにアクセスします。

  1. ノードのアドレスを取得することにより、ノードにアクセスします。

    $ oc get nodes
    $ oc debug nodes/<node_address>
  2. ノード上で ocpodman などのツールへのアクセスを有効にするには、以下のコマンドを実行します。

    sh-4.2# chroot /host
  3. アクセストークンを使用してコンテナーイメージレジストリーにログインします。

    sh-4.2# oc login -u kubeadmin -p <password_from_install_log> https://api-int.<cluster_name>.<base_domain>:6443
    sh-4.2# podman login -u kubeadmin -p $(oc whoami -t) image-registry.openshift-image-registry.svc:5000

    以下のようなログインを確認するメッセージが表示されるはずです。

    Login Succeeded!
    注記

    ユーザー名には任意の値を指定でき、トークンには必要な情報がすべて含まれます。コロンが含まれるユーザー名を指定すると、ログインに失敗します。

    イメージレジストリー Operator はルートを作成するため、 default-route-openshift-image-registry.<cluster_name> のようになります。

  4. レジストリーに対して podman pull および podman push 操作を実行します。

    重要

    任意のイメージをプルできますが、system:registry ロールを追加している場合は、各自のプロジェクトにあるレジストリーにのみイメージをプッシュすることができます。

    次の例では、以下を使用します。

    コンポーネント

    <registry_ip>

    172.30.124.220

    <port>

    5000

    <project>

    openshift

    <image>

    image

    <tag>

    省略 (デフォルトは latest)

    1. 任意のイメージをプルします。

      $ podman pull name.io/image
    2. 新規イメージに <registry_ip>:<port>/<project>/<image> 形式でタグ付けします。プロジェクト名は、イメージを正しくレジストリーに配置し、これに後でアクセスできるようにするために OpenShift Container Platform のプル仕様に表示される必要があります。

      $ podman tag name.io/image image-registry.openshift-image-registry.svc:5000/openshift/image
      注記

      指定されたプロジェクトについて system:image-builder ロールを持っている必要があります。このロールにより、ユーザーはイメージの書き出しやプッシュを実行できます。そうでない場合は、次の手順の podman push は失敗します。これをテストするには、新規プロジェクトを作成し、イメージをプッシュできます。

    3. 新しくタグ付けされたイメージをレジストリーにプッシュします。

      $ podman push image-registry.openshift-image-registry.svc:5000/openshift/image