我们正在本地 vSphere 6.5 集群上使用 Juju 在 Canonical 发行版上运行 Kubernetes 部署,但在添加新的 kubernetes 工作器(通过“juju add-unit kubernetes-worker”)时我们注意到了与 DHCP 相关的问题。
虽然新虚拟机可以顺利创建,但在网络启动之前,首次启动时会发生以下情况:
1)主机名最初设置为“ubuntu”
2)启动网络并发出 DHCP IP 租约请求,使用主机名“ubuntu”(因此 DHCP 服务器将租约记录为“ubuntu”)
3)主机名更改为正确值(即:“juju-fe12e1-11”),但没有发送额外的 DHCP 请求来更新租约信息,而是无限期地将其保留为“ubuntu”
因此基本上在 DHCP 服务器上,所有 IP 租约都有相同的“ubuntu”分配名称,并且本地 DNS 服务器上也会发生同样的情况,因为在我们的本地环境中启用了 DHCP 服务器的记录自动更新。
当然,手动重启虚拟机一次可以解决这个问题,因为第二次启动时主机名已经正确,DHCP 注册具有正确的“juju-xxxxxx-xx”名称(如果在没有实际重启的情况下发出 dhclient release/renew 命令,也会发生同样的情况)。问题是,在采取任何一种操作之前,节点都无法通过 DNS 名称解析,这也会导致一些 Kubernetes 方面的问题。
是否每个人都知道如何实现此行为并使 DHCP 名称注册与实际主机名一致而无需人工干预?
否则,是否有可能修复启动时运行的操作序列,以便在主机名更改后正确发出 DHCP 更新命令?(这足以使名称记录一致)
克劳迪奥