Kubernetes 裸机:为 Node 分配外部 IP

时间:2021-07-04 03:49:32

标签: kubernetes

我已经设置了一个带有几个虚拟机的 Kubernetes 集群。我知道每个节点的外部静态IP。有没有办法让我手动将这些外部 IP 注册到我的集群节点?

我不想使用 Service、Ingress、MetalLB 或任何特定于云的负载均衡器解决方案。

基本上,我想为我的节点手动填充这些字段:

How do I add external IPs to my nodes


就上下文而言,这就是我要完成的任务:我有一些 NodePort 服务,我想将它们公开给 Internet,而无需在服务定义中明确指定 externalIps 列表。我希望来自浏览器的请求通过其外部 IP 命中我的一个节点,并且集群内部的行为就像请求了内部节点 IP 一样。

我假设如果我能以某种方式告诉我的节点它们的外部 IP 是什么,那么这个场景将自动运行。这个假设正确吗?如果是这样,有没有办法,kubectl 或其他方式,让我将外部 IP 添加到我的节点定义中?

否则,我可以通过 CNI 插件实现我所描述的内容吗?或者通过更改 /etc/cni/net.d/10-weave.conflist 的内容?

1 个答案:

答案 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。