跳转到: 导航, 搜索

InstanceAndFloatingIPDNSForNova

  • Launchpad 条目: NovaSpec:public-and-private-dns
  • 创建:
  • 贡献者: Ryan Lane, Andrew Bogott

总结

为 nova 添加功能,以自动管理实例的 DNS 条目,以及与浮动 IP 关联的 DNS 条目,并采用基于驱动程序的系统来处理不同的 DNS 服务器。

发布说明

用户将能够指定用于公共和私有 DNS 的驱动程序,以将 DNS 条目与实例和浮动 IP 地址关联起来。

原理

Nova 已经自动化了许多繁琐的工作。管理 DNS 只是朝着这个方向迈出的又一步。

用户故事

前提条件

设计

Nova 配置将提供以下选项

  • floating_ip_dns_manager
  • instance_dns_manager
  • instance_dns_domain

在创建实例时,nova 将使用实例 DNS 驱动程序和域添加实例名称和 ID 的 DNS 条目。在删除实例时,nova 将删除 DNS 条目。

当用户为指定的域添加浮动 IP 的 DNS 条目时,nova 将使用浮动 DNS 驱动程序添加 DNS 条目。用户可以通过 API 调用获取可用 DNS 域的列表。当浮动 IP 被释放时,其 DNS 条目将自动删除。

用户可以创建新的域或删除现有的域。创建私有域时,可以将其分配给可用区。公共域可以分配给项目,以限制哪些用户可以在这些域中创建条目。

实现

实例 DNS 将作为实例管理的可选步骤添加。浮动 DNS 将作为 API 扩展添加。

所有 DNS 驱动程序都必须可用于实例和浮动 DNS。驱动程序将暴露以下函数

  • get_domains()
  • create_entry(name, address, type, dnsdomain)
  • delete_entry(name, dnsdomain)
  • rename_entry(oldname, newname, dnsdomain)
  • modify_address(name, address, dnsdomain)
  • get_entries_by_address(address, dnsdomain)
  • get_entries_by_name(name, dnsdomain)
  • create_domain(fqdomain)
  • delete_domain(fqdomain)

浮动 DNS API 扩展将暴露上述功能,以及将域分配给可用区或项目的功能。DNS 驱动程序将不知道 nova 特定的信息(例如可用区和项目);这些信息将存储在 nova 数据库中。

未解决的问题

BoF 议程和讨论