Red Hat Training

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

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

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

director を使用して、registry.redhat.io から各イメージをプルし、アンダークラウドで実行する docker-distribution レジストリーに各イメージをプッシュできます。director を使用してオーバークラウドを作成する場合は、オーバークラウドの作成プロセス中に、ノードは関連するイメージをアンダークラウドの docker-distribution レジストリーからプルします。

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

手順

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

    <REGISTRY_IP_ADDRESS>:8787

    アンダークラウドの IP アドレスを使用します。これは undercloud.conf ファイルの local_ip パラメーターで設定済みのアドレスです。以下のコマンドでは、アドレスが 192.168.24.1:8787 であることを前提としています。

  2. registry.redhat.io にログインします。

    (undercloud) $ docker login registry.redhat.io --username $RH_USER --password $RH_PASSWD
  3. イメージをローカルレジストリーにアップロードするためのテンプレートと、それらのイメージを参照する環境ファイルを作成します。

    (undercloud) $ openstack overcloud container image prepare \
      --namespace=registry.redhat.io/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
  4. 次の 2 つのファイルが作成されていることを確認します。

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

    (undercloud) $ 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[]
    注記

    _catalog リソース自体は、イメージを 100 個のみ表示します。追加のイメージを表示するには、?n=<interger> クエリー文字列を _catalog リソースと共に使用して、多数のイメージを表示します。

    (undercloud) $  curl http://192.168.24.1:8787/v2/_catalog?n=150 | 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

レジストリーの設定が完了しました。