在 Kubernetes 单节点集群上测试 Pod 的外部 IP



我使用的是docker桌面版本,并且有一个单节点Kubernetes集群。我有一个容器化的web api,它由pod表示。

我想给Pod一个不同于本地主机的IP地址。

我创建了一个服务来公开我的pod,并使用了一个外部IP,这是yaml文件:

apiVersion: v1
kind: Service
metadata:
name: pred-entrypoint
namespace: default
spec:
type: LoadBalancer
selector:
app: predictim
ports:
- port: 1080
targetPort: 1080
nodePort: 30001
externalIPs:
- 80.11.12.10

当我启动一个服务时,将我描述为外部IP:localhost,80.11.12.10

当我用PowerShell测试pod时:

  • 使用Invoke-RestMethod -Method POST -Uri http://localhost:1080/predict->它运行良好
  • 使用Invoke-RestMethod -Method POST -Uri http://80.11.12.10:1080/predict->错误地址错误

我不知道如何测试分配的外部IP。

我确实错过了什么,你能帮我理解一下吗。事先非常感谢。

最简单的实现方法是使用hostPort。这将基本上模仿docker run命令上的-p 1080:1080选项。您也应该能够使用您的公共IP,因为它只是一个节点。这必须在pod模板中完成。

ports:
- containerPort: 1080
hostPort: 1080

更优雅的方法是使用MetalLB。安装MetalLB后,即使您不在云上,也可以使您的服务类型为LoadBalancer。

最新更新