9.2. 指定 DNS 分配给端口的名称


在 OpenShift 上的 Red Hat OpenStack Services (RHOSO)环境中,您可以指定内部 DNS 分配给端口的名称。您可以通过加载 ML2 扩展驱动程序、端口 DNS 域、dns_domain_ports 在 Networking 服务(neutron)中启用此功能。

加载驱动程序后,您可以使用 OpenStack 客户端端口命令、端口集或端口 创建,with -dns-name 来分配端口名称。

重要

您必须为 DNS 启用端口扩展(dns_domain_ports)的 DNS 域,以便内部解析 RHOSO 环境中端口的名称。使用 NeutronDnsDomain 默认值 openstacklocal 意味着网络服务不会内部解析 DNS 的端口名称。

另外,当启用端口扩展的 DNS 域时,计算服务会在引导虚拟机实例期间使用实例的 hostname 属性自动填充 dns_name 属性。在引导过程结束时,dnsmasq 会根据其实例主机名识别分配的端口。

先决条件

  • 在工作站上安装了 oc 命令行工具。
  • 以具有 cluster-admin 权限的用户身份登录到可访问 RHOSO 控制平面的工作站。

流程

  • 使用键值对 service_plugins=dns_domain_ports 更新 control plane:

    $ oc patch -n openstack openstackcontrolplane openstack-galera-network-isolation --type=merge --patch "
    ---
    spec:
      neutron:
        template:
          customServiceConfig: |
            [ml2]
            extension_drivers=dns_domain_ports
    "
    Copy to Clipboard Toggle word wrap
    注意

    如果您设置了 dns_domain_ports,请确保部署也没有使用 dns_domain,即 DNS 集成扩展。这些扩展不兼容,无法同时定义这两个扩展。

    RHOSO 用户现在可以为浮动 IP 设置端口转发。

验证

  1. 从您的工作站访问 OpenStackClient pod 的远程 shell:

    $ oc rsh -n openstack openstackclient
    Copy to Clipboard Toggle word wrap
  2. 确认网络服务已成功载入 dns_domain_ports ML2 扩展驱动程序:

    $ openstack extension list --network --max-width 75 | \
    grep dns-domain-ports --os-cloud <cloud_name>
    Copy to Clipboard Toggle word wrap
    • 将 <cloud_name> 替换为您要运行命令的云的名称。

      输出示例

      成功验证会生成类似如下的输出:

      | dns_domain for ports
      | dns-domain-ports    | Allows the DNS domain to be specified for a network
      port.
      Copy to Clipboard Toggle word wrap
  3. 在网络(public)上创建一个新端口(new_port)。为端口分配一个 DNS 名称(my_port)。

    示例

    $ openstack port create --network public --dns-name my_port new_port
    Copy to Clipboard Toggle word wrap

  4. 显示端口的详细信息(new_port)。

    示例

    $ openstack port show -c dns_assignment -c dns_domain -c dns_name -c name new_port
    Copy to Clipboard Toggle word wrap

    输出示例

    +-------------------------+----------------------------------------------+
    | Field                   | Value                                        |
    +-------------------------+----------------------------------------------+
    | dns_assignment          | fqdn='my_port.example.com',                  |
    |                         | hostname='my_port',                          |
    |                         | ip_address='10.65.176.113'                   |
    | dns_domain              | example.com                                  |
    | dns_name                | my_port                                      |
    | name                    | new_port                                     |
    +-------------------------+----------------------------------------------+
    Copy to Clipboard Toggle word wrap

    dns_assignment 下,端口的完全限定域名(fqdn)值包含 DNS 名称的连接(my_port)以及之前使用 NeutronDnsDomain 设置的域名(example.com)。

  5. 使用您刚才创建的端口(new_port)创建一个新虚拟机实例(my_vm)。

    示例

    $ openstack server create --image rhel --flavor m1.small --port new_port my_vm
    Copy to Clipboard Toggle word wrap

  6. 显示端口的详细信息(new_port)。

    示例

    $ openstack port show -c dns_assignment -c dns_domain -c dns_name -c name new_port
    Copy to Clipboard Toggle word wrap

    输出示例

    +-------------------------+----------------------------------------------+
    | Field                   | Value                                        |
    +-------------------------+----------------------------------------------+
    | dns_assignment          | fqdn='my_vm.example.com',                    |
    |                         | hostname='my_vm',                            |
    |                         | ip_address='10.65.176.113'                   |
    | dns_domain              | example.com                                  |
    | dns_name                | my_vm                                        |
    | name                    | new_port                                     |
    +-------------------------+----------------------------------------------+
    Copy to Clipboard Toggle word wrap

    请注意,计算服务将 dns_name 属性从其原始值(my_port)改为与端口关联的实例的名称(my_vm)。

  7. 退出 openstackclient pod:

    $ exit
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat