首页 > 解决方案 > 请示例 Kubernetes 外部地址与内部地址

问题描述

在 vmware 环境中,外部地址是否应该填充虚拟机(或主机)的 IP 地址?

我有三个集群,并且发现只有那些使用“云提供商”的集群在我运行kubectl get nodes -o wide. 据我了解,“云提供商”插件(GCP、AWS、Vmware 等)是将公共 IP 地址分配给节点的原因。

部署到 GCP 的 KOPS = 外部地址是节点的真实公共 IP 地址。

Kubeadm 部署到 vwmare,使用 vmware cloud provider = 外部地址与内部地址相同(私有范围)。

已部署 Kubeadm,没有云提供商 = 没有外部 IP。

我问是因为我有一个工具可以抓取 /api/v1/nodes,然后使用“外部 ip”与找到的每个主机进行交互。这仅适用于我的前两个集群。

我的工具在集群的本地网络上运行,它是否应该以“内部 ip”为目标?换句话说,内部 ip 总是虚拟机或物理主机的 IP 地址(安装在裸机上时)。

谢谢

标签: networkingkubernetes

解决方案


Baremetal 将没有节点的“外部 IP”,“内部 IP”将是节点的 IP 地址。您正在本地集群的同一网络内部运行命令,因此您应该能够根据需要使用此内部 IP 地址访问节点。

在裸机上使用 k8s 时,外部 IP 和负载均衡器功能本身并不存在。如果您想公开“外部 IP”,请使用引号,因为大多数情况下它仍然是 10.XXX 地址,从您的裸机集群中,您需要安装类似 MetalLB 的东西。

https://github.com/google/metallb


推荐阅读