Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

5.5. ローカルレジストリーとしてアンダークラウドを使用する方法

アンダークラウド上でローカルレジストリーを設定して、オーバークラウドのコンテナーイメージを保管することができます。この方法は、以下の操作を伴います。

  • director が registry.access.redhat.com から各イメージをプルする
  • director が各イメージをアンダークラウド上で動作中の docker-distribution レジストリーにプッシュする
  • director がオーバークラウドを作成する
  • オーバークラウドの作成中に、ノードが適切なイメージをアンダークラウドの docker-distribution レジストリーからプルする

これにより、コンテナーイメージのネットワークトラフィックは、内部ネットワーク内に留まるので、外部ネットワークとの接続で輻輳が発生せず、デプロイメントプロセスを迅速化することができます。

手順

  1. ローカルアンダークラウドレジストリーのアドレスを特定します。アドレスは、以下のパターンを使用します。

    <REGISTRY IP ADDRESS>:8787

    アンダークラウドの IP アドレスを使用します。以下のコマンドでは、アドレスが 192.168.24.1:8787 であることを前提としています。

  2. イメージをローカルレジストリーにアップロードするためのテンプレートと、それらのイメージを参照する環境ファイルを作成します。

    (undercloud) $ openstack overcloud container image prepare \
      --namespace=registry.access.redhat.com/rhosp13 \
      --push-destination=192.168.24.1:8787 \
      --prefix=openstack- \
      --tag-from-label {version}-{release} \
      --output-env-file=/home/stack/templates/overcloud_images.yaml \
      --output-images-file /home/stack/local_registry_images.yaml
    • 任意のサービス用の環境ファイルを指定するには、-e オプションを使用します。
    • カスタムロールファイルを指定するには、-r オプションを使用します。
    • Ceph Storage を使用している場合には、Ceph Storage 用のコンテナーイメージの場所を定義する追加のパラメーター (--set ceph_namespace--set ceph_image--set ceph_tag) を指定します。
  3. これで 2 つのファイルが作成されます。

    • リモートソースからのコンテナーイメージの情報が含まれている local_registry_images.yaml。このファイルを使用して、Red Hat Container Registry (registry.access.redhat.com) からイメージをアンダークラウドにプルします。
    • アンダークラウド上の最終的なイメージの場所が記載されている overcloud_images.yaml。このファイルをデプロイメントで指定します。

      両方のファイルが存在することを確認します。

  4. local_registry_images.yaml ファイルを変更し、registry.access.redhat.com との間で認証を行うために以下のパラメーターを追加します。

    ContainerImageRegistryLogin: true
    ContainerImageRegistryCredentials:
      registry.access.redhat.com:
        <USERNAME>: <PASSWORD>
    • <USERNAME> および <PASSWORD>registry.access.redhat.com の認証情報に置き換えます。
  5. registry.access.redhat.com にログインし、コンテナーイメージをリモートレジストリーからアンダークラウドにプルします。

    (undercloud) $ sudo docker login registry.access.redhat.com
    (undercloud) $ sudo openstack overcloud container image upload \
      --config-file  /home/stack/local_registry_images.yaml \
      --verbose

    ネットワークおよびアンダークラウドディスクの速度によっては、必要なイメージをプルするのに時間がかかる場合があります。

    注記

    コンテナーイメージは、およそ 10 GB のディスク領域を使用します。

  6. これで、イメージがアンダークラウドの docker-distribution レジストリーに保管されます。アンダークラウドの docker-distribution レジストリーのイメージ一覧を表示するには、以下のコマンドを実行します。

    (undercloud) $  curl http://192.168.24.1:8787/v2/_catalog | jq .repositories[]

    特定イメージのタグの一覧を表示するには、skopeo コマンドを使用します。

    (undercloud) $ curl -s http://192.168.24.1:8787/v2/rhosp13/openstack-keystone/tags/list | jq .tags

    タグ付けられたイメージを検証するには、skopeo コマンドを使用します。

    (undercloud) $ skopeo inspect --tls-verify=false docker://192.168.24.1:8787/rhosp13/openstack-keystone:13.0-44

レジストリーの設定の準備が整いました。