我已经设置了一个带有几个虚拟机的 Kubernetes 集群。我知道每个节点的外部静态IP。有没有办法让我手动将这些外部 IP 注册到我的集群节点?
我不想使用 Service、Ingress、MetalLB 或任何特定于云的负载均衡器解决方案。
基本上,我想为我的节点手动填充这些字段:
就上下文而言,这就是我要完成的任务:我有一些 NodePort 服务,我想将它们公开给 Internet,而无需在服务定义中明确指定 externalIps
列表。我希望来自浏览器的请求通过其外部 IP 命中我的一个节点,并且集群内部的行为就像请求了内部节点 IP 一样。
我假设如果我能以某种方式告诉我的节点它们的外部 IP 是什么,那么这个场景将自动运行。这个假设正确吗?如果是这样,有没有办法,kubectl
或其他方式,让我将外部 IP 添加到我的节点定义中?
否则,我可以通过 CNI 插件实现我所描述的内容吗?或者通过更改 /etc/cni/net.d/10-weave.conflist
的内容?
答案 0 :(得分:2)
好的,让我们回顾一下,这就是实际的数据结构:
now rewrite length_cons, plus_nat_eq_plus_int, Z.add_comm.
因此多个地址类型并行存在(通常也有主机名数据集)。然而,Kubelet 只根据 addresses:
- address: 10.45.0.53
type: InternalIP
- address: 34.127.42.172
type: ExternalIP
或系统的主接口地址设置 InternalIP 本身。其他值由您没有的云控制器填充。因此,要么您需要编写自己的云控制器,要么将节点的主 IP 设置为公开(会注明为“内部”,但 IP 是 IP。