networking - 请示例 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 地址(安装在裸机上时)。
谢谢
解决方案
Baremetal 将没有节点的“外部 IP”,“内部 IP”将是节点的 IP 地址。您正在本地集群的同一网络内部运行命令,因此您应该能够根据需要使用此内部 IP 地址访问节点。
在裸机上使用 k8s 时,外部 IP 和负载均衡器功能本身并不存在。如果您想公开“外部 IP”,请使用引号,因为大多数情况下它仍然是 10.XXX 地址,从您的裸机集群中,您需要安装类似 MetalLB 的东西。
推荐阅读
- python - 如何使用 Selenium 和 Python 相对于 xpath 中的变量定位元素
- amazon-web-services - AWS 如何将更改通知 API 用户?
- swiftui - 从图像 swiftUI 中获取 RGB 强度
- javascript - GrapeCity ActiveReportsJS 如何为数据源传递授权标头
- javascript - Angular 9:[innerHTML] 即使是纯字符串也无法在不清理值的情况下工作
- flutter - Flutter:从 http 请求准备列表数据
- html - 如果我在使用 django 框架时我的 css 不工作,我该怎么办?
- python - Selenium Python 无法使用代理连接到网站
- javascript - 将包中的代码拆分单独导出到不同的包
- javascript - 在 FileReader 之前运行功能出现问题