Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

13.5. 内部レジストリーへのアクセス

イメージのプッシュまたはプルを実行するために OpenShift Container Platform の内部レジストリーに直接アクセスできます。たとえば、これはイメージの手動プッシュによってイメージストリームを作成する場合や、単にイメージに対して docker pull を直接実行する場合に役立ちます。

内部レジストリーは OpenShift Container Platform API と同じトークンを使用して認証します。内部レジストリーに対して docker login を実行するには、任意のユーザー名およびメールを使用できますが、パスワードは有効な OpenShift Container Platform トークンである必要があります。

内部レジストリーにログインするには、以下を実行します。

  1. OpenShift Container Platform にログインします。

    $ oc login
  2. アクセストークンを取得します。

    $ oc whoami -t
  3. トークンを使用して内部レジストリーにログインします。docker をシステムにインストールしておく必要があります。

    $ docker login -u <user_name> -e <email_address> \
        -p <token_value> <registry_server>:<port>
    注記

    使用するレジストリー IP またはホスト名およびポートが不明な場合は、クラスター管理者に問い合わせてください。

イメージをプルするには、要求される imagestreams/layers に対する get 権限が、この認証済みのユーザーに割り当てられている必要があります。また、イメージをプッシュするには、認証済みのユーザーに、要求される imagestreams/layers に対する update 権限が割り当てられている必要があります。

デフォルトで、プロジェクトのすべてのサービスアカウントは同じプロジェクトの任意のイメージをプルする権限を持ち、builder サービスアカウントには同じプロジェクトの任意のイメージをプッシュする権限を持ちます。

13.5.1. リポジトリーの一覧表示

リポジトリーまたはイメージストリーム名の一覧表示は /v2/_catalog エンドポイントでサポートされます。

唯一の要件として、認証されたユーザーにはクラスター全体での imagestreams に対して list 権限が必要になります。

イメージストリームを一覧表示するためのパーミッションをユーザーに付与するには、以下を実行します。

$ oc adm policy add-cluster-role-to-user registry-viewer user

リポジトリーを一覧表示するには、以下を実行します。

$ oc login -u user
$ curl -v -u unused:$(oc whoami -t) https://<registry_server>:<port>/v2/_catalog?n=100
重要

この API 呼び出しは、クラスターに多数のイメージストリームが含まれる場合に多くのコストがかかります。すべてのイメージストリームを一覧表示するのではなく、ページネーションを使用することが推奨されます。