第11章 コンテナー化されたコンピュートノードの設定
director には、OpenStack のコンテナー化プロジェクト (Kolla) のサービスとオーバークラウドのコンピュートノードを統合するオプションがあります。たとえば、Red Hat Enterprise Linux Atomic Host をベースのオペレーティングシステムや個別のコンテナーとして使用して、異なる OpenStack サービスを実行するコンピュートノードを作成します。
コンテナー化されたコンピュートノードは、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat サービスレベルアグリーメント (SLA) では完全にサポートされていません。これらは、機能的に完全でない可能性があり、実稼働環境での使用を目的とはしていませんが、近々発表予定のプロダクトイノベーションをリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。テクノロジープレビューとして提供している機能のサポートの対象範囲に関する詳しい情報は、https://access.redhat.com/support/offerings/techpreview/ を参照してください。
director のコアとなる Heat テンプレートコレクションには、コンテナー化されているコンピュートノードの設定をサポートする環境ファイルが含まれます。これらのファイルには以下が含まれます。
-
docker.yaml: コンテナー化されているコンピュートノードを設定する主要な環境ファイル -
docker-network.yaml: コンテナー化されたコンピュートノードのネットワークの環境ファイル
11.1. スタックの深度を高くする方法
コンテナー化されたコンピュートの Heat テンプレート内のリソーススタック数に対応するには、アンダークラウドで OpenStack Orchestration (heat) のスタックの深度を高くする必要があります。スタックの深度を増やすには、以下の手順を使用します。
/etc/heat/heat.confを編集して、max_nested_stack_depthパラメーターを特定します。このパラメーターの値を10に増やします。max_nested_stack_depth = 10
このファイルを保存します。
OpenStack Orchestration (heat) サービスを再起動します。
sudo systemctl restart openstack-heat-engine.service
アンダークラウドのマイナーおよびメジャーバージョンの更新を実行すると、/etc/heat/heat.conf ファイルへの変更が元に戻されてしまう可能性があります。必要な場合には、heat::engine::max_nested_stack_depth hieradata を設定して、スタックの深度の設定を永続的にします。アンダークラウドの hieradata を設定するには、undercloud.conf ファイル内の hieradata_override パラメーターにカスタムの hieradata を含むファイルを指定してください。
11.2. コンテナー化されたコンピュートの環境ファイル (docker.yaml) の検証
docker.yaml ファイルは、コンテナー化されたコンピュートノードの設定用の主な環境ファイルです。このファイルには、resource_registry のエントリーが含まれます。
resource_registry: OS::TripleO::ComputePostDeployment: ../docker/compute-post.yaml OS::TripleO::NodeUserData: ../docker/firstboot/install_docker_agents.yaml
- OS::TripleO::NodeUserData
-
初回起動時にカスタムの設定を使用する Heat テンプレートを提供します。今回の場合は、初回起動時に、
openstack-heat-docker-agentsコンテナーをコンピュートノードにインストールします。このコンテナーは、初期化スクリプトのセットを提供して、コンテナー化されたコンピュートノードと Heat フックを設定して director と通信します。 - OS::TripleO::ComputePostDeployment
コンピュートノードに対するデプロイ後の設定リソースが含まれる Heat テンプレートを提供します。これには、Puppet に
tagsセットを提供するソフトウェア設定リソースが含まれます。ComputePuppetConfig: type: OS::Heat::SoftwareConfig properties: group: puppet options: enable_hiera: True enable_facter: False tags: package,file,concat,file_line,nova_config,neutron_config,neutron_agent_ovs,neutron_plugin_ml2 inputs: - name: tripleo::packages::enable_install type: Boolean default: True outputs: - name: result config: get_file: ../puppet/manifests/overcloud_compute.ppこれらのタグは、Puppet モジュールを
openstack-heat-docker-agentsコンテナーに渡すように定義します。
docker.yamlファイルには、NovaImage と呼ばれる parameter が含まれており、コンピュートノードをプロビジョニングする際に overcloud-full イメージを異なるイメージ (atomic-image) に置き換えます。このような新規イメージをアップロードする方法は、「Atomic Host のイメージのアップロード」 を参照してください。
docker.yaml ファイルには、Docker レジストリーとイメージがコンピュートノードサービスを使用するように定義する parameter_defaults セクションも含まれます。このセクションを変更して、デフォルトの registry.access.redhat.com の代わりにローカルのレジストリーを使用するように指定することもできます。ローカルのレジストリーの設定方法は、「ローカルのレジストリーの使用」を参照してください。
11.3. Atomic Host のイメージのアップロード
director では、atomic-image としてイメージストアにインポートする Red Hat Enterprise Linux 7 Atomic Host のクラウドイメージのコピーが必要です。これは、コンピュートノードにはオーバークラウド作成のプロビジョニングの際に、ベースの OS イメージが必要なためです。
Red Hat Enterprise Linux 7 Atomic Host の製品ページ (https://access.redhat.com/downloads/content/271/ver=/rhel---7/7.2.2-2/x86_64/product-software) から クラウドのイメージ のコピーをダウンロードし、stack ユーザーのホームディレクトリーの images サブディレクトリーに保存します。
イメージのダウンロードが完了したら、stack ユーザーとして director にイメージをインポートします。
$ glance image-create --name atomic-image --file ~/images/rhel-atomic-cloud-7.2-12.x86_64.qcow2 --disk-format qcow2 --container-format bare
以下のコマンドでは、その他のオーバークラウドのイメージとこのイメージをインポートします。
$ glance image-list +--------------------------------------+------------------------+ | ID | Name | +--------------------------------------+------------------------+ | 27b5bad7-f8b2-4dd8-9f69-32dfe84644cf | atomic-image | | 08c116c6-8913-427b-b5b0-b55c18a01888 | bm-deploy-kernel | | aec4c104-0146-437b-a10b-8ebc351067b9 | bm-deploy-ramdisk | | 9012ce83-4c63-4cd7-a976-0c972be747cd | overcloud-full | | 376e95df-c1c1-4f2a-b5f3-93f639eb9972 | overcloud-full-initrd | | 0b5773eb-4c64-4086-9298-7f28606b68af | overcloud-full-vmlinuz | +--------------------------------------+------------------------+
11.4. ローカルのレジストリーの使用
デフォルトの設定は、Red Hat のコンテナーレジストリーをイメージのダウンロードに使用しますが、オプションの手順として、ローカルレジストリーを使用して、オーバークラウドの作成プロセス中の帯域幅を確保することができます。
既存のローカルレジストリーを使用するか、新たにインストールします。新しいレジストリーをインストールするには、『Getting Started with Containers』の「Get Started with Docker Formatted Container Images」に記載の手順を参照してください。
必要なイメージをレジストリーにプルします。
$ sudo docker pull registry.access.redhat.com/rhosp11_tech_preview/openstack-nova-compute:latest $ sudo docker pull registry.access.redhat.com/rhosp11_tech_preview/openstack-data:latest $ sudo docker pull registry.access.redhat.com/rhosp11_tech_preview/openstack-nova-libvirt:latest $ sudo docker pull registry.access.redhat.com/rhosp11_tech_preview/openstack-neutron-openvswitch-agent:latest $ sudo docker pull registry.access.redhat.com/rhosp11_tech_preview/openstack-openvswitch-vswitchd:latest $ sudo docker pull registry.access.redhat.com/rhosp11_tech_preview/openstack-openvswitch-db-server:latest $ sudo docker pull registry.access.redhat.com/rhosp11_tech_preview/openstack-heat-docker-agents:latest
イメージをプルした後には、正しいレジストリーホストにタグ付けします。
$ sudo docker tag registry.access.redhat.com/rhosp11_tech_preview/openstack-nova-compute:latest localhost:8787/registry.access.redhat.com/openstack-nova-compute:latest $ sudo docker tag registry.access.redhat.com/rhosp11_tech_preview/openstack-data:latest localhost:8787/registry.access.redhat.com/openstack-data:latest $ sudo docker tag registry.access.redhat.com/rhosp11_tech_preview/openstack-nova-libvirt:latest localhost:8787/registry.access.redhat.com/openstack-nova-libvirt:latest $ sudo docker tag registry.access.redhat.com/rhosp11_tech_preview/openstack-neutron-openvswitch-agent:latest localhost:8787/registry.access.redhat.com/openstack-neutron-openvswitch-agent:latest $ sudo docker tag registry.access.redhat.com/rhosp11_tech_preview/openstack-openvswitch-vswitchd:latest localhost:8787/registry.access.redhat.com/openstack-openvswitch-vswitchd:latest $ sudo docker tag registry.access.redhat.com/rhosp11_tech_preview/openstack-openvswitch-db-server:latest localhost:8787/registry.access.redhat.com/openstack-openvswitch-db-server:latest $ sudo docker tag registry.access.redhat.com/rhosp11_tech_preview/openstack-heat-docker-agents:latest localhost:8787/registry.access.redhat.com/openstack-heat-docker-agents:latest
レジストリーにプッシュします。
$ sudo docker push localhost:8787/registry.access.redhat.com/openstack-nova-compute:latest $ sudo docker push localhost:8787/registry.access.redhat.com/openstack-data:latest $ sudo docker push localhost:8787/registry.access.redhat.com/openstack-nova-libvirt:latest $ sudo docker push localhost:8787/registry.access.redhat.com/openstack-neutron-openvswitch-agent:latest $ sudo docker push localhost:8787/registry.access.redhat.com/openstack-openvswitch-vswitchd:latest $ sudo docker push localhost:8787/registry.access.redhat.com/openstack-openvswitch-db-server:latest $ sudo docker push localhost:8787/registry.access.redhat.com/openstack-heat-docker-agents:latest
メインの docker.yaml 環境ファイルのコピーを templates サブディレクトリーに作成します。
$ cp /usr/share/openstack-tripleo-heat-templates/environments/docker.yaml ~/templates/.
ファイルを編集して resource_registry が絶対パスを使用するように変更します。
resource_registry: OS::TripleO::ComputePostDeployment: /usr/share/openstack-tripleo-heat-templates/docker/compute-post.yaml OS::TripleO::NodeUserData: /usr/share/openstack-tripleo-heat-templates/docker/firstboot/install_docker_agents.yaml
parameter_defaults の DockerNamespace をレジストリーの URL に変更します。また、DockerNamespaceIsRegistry を true に設定します。以下に例を示します。
parameter_defaults: DockerNamespace: registry.example.com:8787/registry.access.redhat.com DockerNamespaceIsRegistry: true
ローカルレジストリーに必要な Docker イメージが追加され、コンテナー化されたコンピュートの設定はこのレジストリーを使用するように変更されました。
11.5. オーバークラウドのデプロイメントへの環境ファイルの追加
オーバークラウドの作成時には、openstack overcloud deploy のコマンドで、コンテナー化されたコンピュートノード用のメインの環境ファイル (docker.yaml) とネットワーク環境ファイル (docker-network.yaml) を指定します。以下に例を示します。
$ openstack overcloud deploy --templates -e /usr/share/openstack-tripleo-heat-templates/environments/docker.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/docker-network.yaml [OTHER OPTIONS] ...
director により、コンテナー化されたコンピュートノードによりオーバークラウドが作成されました。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.