<p>kubeadm init拒绝使用本地链接单播IP作为--apiserver-advertise-address</p>

创建于 2018-11-23  ·  3评论  ·  资料来源: kubernetes/kubeadm

这是错误报告还是功能请求?

/种类错误

版本号

kubeadm版本(使用kubeadm version ):

v1.12.2

发生了什么?

我正在设置一个基于VM的测试工具,该工具使用kubeadm设置了一个小的k8s集群。 VM被配置为设置IPv4链接本地地址,并使用多播DNS相互查找。 由于虚拟机的设置方式,我必须重写--apiserver-advertise-address才能使k8使用LAN接口进行节点通信,因为它不是默认接口。

不幸的是,kubeadm在传入的地址上检查.IsGlobalUnicast() ,因此即使是建立小型集群的有效方法,本地链接的IPv4地址也被拒绝。

您预期会发生什么?

如果在命令行上明确指定了kubeadm init ,则它们应接受本地链接的IPv4或IPv6地址。

如何重现(尽可能少且精确)?

kubeadm init --apiserver-advertise-address=169.254.152.255

help wanted kinfeature prioritbacklog sinode

最有用的评论

因此,在大多数情况下,启用链接本地地址可能会出现问题。 由于一些其他的失败情况,我们有意禁用了此功能,并且该用例是非标准的IMO。

所有3条评论

/删除类错误
/种类功能
/ sig节点
/优先积压
/分配@kad
抄送@rosti

@丹德森
这是设计使然。 我们的验证只是一个健全性检查,因为kubelet还会忽略主机接口中不是全局单播的地址:
https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/util/net/interface.go#L305 -L308

环回也被覆盖:
https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/util/net/interface.go#L408

因此,在大多数情况下,启用链接本地地址可能会出现问题。 由于一些其他的失败情况,我们有意禁用了此功能,并且该用例是非标准的IMO。

鉴于缺乏理由,并且总体上认为这对于大多数用户而言可能会带来更多问题,我们正在关闭。

如果您的用例可以简化,通用化或易于修补,请随时重新打开。

此页面是否有帮助?
0 / 5 - 0 等级