我们在使用 MAAS(本例中为 2.8 版)时观察到了一些异常。机器在部署后(使用 ansible 角色)配置了 systemd-resolved,从那时起,每次系统重启都会使 cloud-init 在启动过程中永远挂起。
我们可以在控制台上看到它尝试访问 FQDN10-0-0-0--25.maas-internal
并抱怨它无法解析主机名,这显然只能由 MAAS DNS 服务器本身解析。我们目前的工作理论是,由于我们将默认 DNS 服务器设置为1.1.1.1
和,8.8.8.8
并且由于 IPv6 可能比 cloud-init 控制的 IPv4 地址更早出现,因此 MAAS 地址不被视为 DNS 解析。
这让我想到一些问题:
- 直接更改 /etc/cloud/cloud.cfg.d/90_dpkg_local_cloud_config.cfg 和 90_dpkg_maas.cfg,将端点/元数据_url 替换为上游 DNS 服务器可以解析的 FQDN,这似乎没有效果,这些文件是否会在从 MAAS 进行 PXE 启动期间被覆盖?
- 我可以说服/重新配置 MAAS 使用它的 FQDN 而不是 FQDN
10-0-0-0--25.maas-internal
吗? - 我是否需要使用 resolveconf 来确保 MAAS IP 始终是列表中的第一个名称服务器?
- 我可以配置 systemd-resolved 以优先使用特定接口上的注入 DNS 服务器吗?
- nftables(没有 MAAS 端口的传出规则)是否有可能干扰 cloud-init?nftables 在启动过程中何时变为活动状态?
答案1
好的,我最终发现 nftables 确实在整个 cloud-init 过程之前加载,因此在 TCP 端口 5248 上对 MAAS 服务器设置传出接受规则至关重要!为什么 cloud-init 会延迟启动约 1.5 小时,这超出了我的理解范围。