第4章 統合 DNS サービスの使用
このセクションの以下のコンテンツは、今回のリリースでは テクノロジープレビュー としての利用となるため、Red Hat によって完全にはサポートされません。これは、テスト用途にのみご利用いただく機能です。実稼働環境にはデプロイしないでください。詳細は、テクノロジープレビュー を参照してください。
Red Hat OpenStack Services on OpenShift (RHOSO) DNS サービス (designate) は Networking サービス (neutron) と統合され、ポートの自動レコードセット作成と Compute サービス (nova) を通じて、仮想マシンインスタンスを提供します。
クラウド管理者は、DNS サービスを使用して、ネットワークに関連付けられたゾーンを作成します。クラウド管理者がこのネットワークを使用することで、クラウドユーザーは仮想マシンインスタンス、ポート、または Floating IP を作成し、DNS サービスは必要な DNS レコードを自動的に作成します。
DNS サービスのデプロイメント中に、Networking サービス (neutron) は拡張機能 dns_domain_ports を読み込みます。この拡張機能により、以下の DNS 属性を RHOSO ポート、ネットワーク、および Floating IP に追加できます。
詳細は、DNS サービスのデプロイ のオプションの手順を参照してください。
| リソース | DNS 名 | DNS ドメイン (ゾーン) |
|---|---|---|
| Ports | はい | はい |
| Networks | いいえ | はい |
| Floating IP | はい | はい |
ネットワークと Floating IP の両方で指定された DNS ドメインの場合、Floating IP のポートのドメインがネットワークで設定されたドメインよりも優先されます。
このセクションに含まれるトピックは次のとおりです。
4.1. Setting up a project for DNS integration リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Services on OpenShift (RHOSO) クラウド管理者は、必須のゾーン、ネットワーク、およびサブネットを作成し、クラウドユーザーは、仮想マシンインスタンス、ポート、または Floating IP の作成時に指定する必要があります。RHOSO Networking サービス (neutron) は DNS サービス (設計) と統合されているため、クラウドユーザーがこれらのオブジェクトを作成すると、自動的に DNS サービスに追加されます。
前提条件
-
ワークステーションに
ocコマンドラインツールがインストール済みである。 -
cluster-admin権限を持つユーザーとして、RHOSO コントロールプレーンにアクセスできるワークステーションにログオン済みである。 -
ポートや VM に使用するネットワークは、
router:external属性をTrueに設定することはできません。ネットワークの作成時に、--externalオプションは指定しないでください。 - ネットワークは、FLAT、VLAN、GRE、VXLAN、または GENEVE のタイプのいずれかでなければなりません。
VLAN、GRE、VXLAN、または GENEVE ネットワークの場合、セグメント ID は Networking サービスの
ml2_conf.iniファイルで設定した範囲外である必要があります。ml2_conf.iniファイルは、/etc/neutron/plugins/ml2/ml2_conf.iniのコントローラーノードホストにあります。以下の表を使用して、ネットワークセグメンテーション ID の範囲を参照するセクションとオプションを決定します。Expand 表4.2 ネットワークのセグメント ID の設定に使用される ml2_conf.ini オプション ネットワークの種類 セクション オプション GENEVE
[ml2_type_geneve]
vni_ranges
GRE
[ml2_type_gre]
tunnel_id_ranges
VLAN
[ml2_type_vlan]
network_vlan_ranges
VXLAN
[ml2_type_vxlan]
vni_ranges
これらの前提条件が満たされていない場合は、Networking サービスはデフォルトの dns_domain 値 openstacklocal を使用して内部リゾルバーに DNS 割り当てを作成します。
手順
ワークステーションから OpenStackClient Pod のリモートシェルにアクセスします。
$ oc rsh -n openstack openstackclient特定のプロジェクトのユーザーが DNS エントリーを作成できるようにゾーンを作成します。
例
以下の例では、クラウド管理者は
example.com.という名前のゾーンを作成し、プロジェクト ID (f75ec24a-d361-ab86-54c0-dfe6093245a3) に含まれるユーザー ID に、そのゾーンにレコードセットを追加するパーミッションを割り当てます。$ openstack zone create --email example@example.com example.com. --sudo-project-id f75ec24a-d361-ab86-54c0-dfe6093245a3注記DNS ドメインは、常にピリオドで終わる、完全修飾ドメイン名 (FQDN) である必要があります。
特定のプロジェクトのユーザーが DNS エントリーを作成できるようにネットワークを作成します。
例
以下の例では、クラウド管理者は以前に作成したゾーン
example.comを使用してネットワークexample-networkとセグメント ID2017(ml2_conf.ini で定義された範囲外) を作成します。$ openstack network create --dns-domain example.com. \ --provider-segment 2017 --provider-network-type geneve \ example-networkネットワーク上にサブネットを作成します。
例
以下の例では、クラウド管理者はサブネット
example-subnetをネットワークexample-networkに作成します。$ openstack subnet create \ --allocation-pool start=192.0.2.10,end=192.0.2.200 \ --network example-network \ --subnet-range 192.0.2.0/24 \ example-subnet- インスタンス、ポート、および Floating IP の追加時に作成したゾーンおよびネットワークを使用するように、プロジェクト内のクラウドユーザーに指示します。
インスタンス、ポート、または Floating IP を作成するユーザーにゾーンにレコードセットを作成するパーミッションがない場合や、ゾーンが DNS サービスに存在しない場合には、Networking サービスは次の処理を行います。
-
指定した
dns_domainを使用してdns_assignmentフィールドに入力された値でポートを作成します。 - DNS サービスにレコードセットを作成しません。
- "Error publishing port data in external DNS service." エラーをログに記録します。
検証
作成したネットワークが存在することを確認します。
例
$ openstack network show example-network出力例
+---------------------------+--------------------------------------+ | Field | Value | +---------------------------+--------------------------------------+ | admin_state_up | UP | | availability_zone_hints | | | availability_zones | | | created_at | 2022-09-07T19:03:32Z | | description | | | dns_domain | example.com. | | id | 9ae5b3d5-f12c-4a67-b0e5-655d53cd4f7c | | ipv4_address_scope | None | | ipv6_address_scope | None | | is_default | None | | is_vlan_transparent | None | | mtu | 1450 | | name | example-network | | port_security_enabled | True | | project_id | f75ec24a-d361-ab86-54c0-dfe6093245a3 | | provider:network_type | geneve | | provider:physical_network | None | | provider:segmentation_id | 2017 | | qos_policy_id | None | | revision_number | 3 | | router:external | Internal | | segments | None | | shared | False | | status | ACTIVE | | subnets | 15546c9d-6faf-43aa-83e7-b1e705eed060 | | tags | | | updated_at | 2022-09-07T19:03:43Z | +---------------------------+--------------------------------------+