我正在寻求公开单个Pod HTTP。这里的窍门是有问题的Pod需要知道其外部有效IP地址,因此为了提前进行配置,我必须确定要公开它的外部IP地址。
目前,我正尝试以这种方式公开
kubectl expose pod my-pod --type=LoadBalancer --name=lb-http --external-ip=$IP --port=80 --target-port=30000
但是我认为--external-ip
标志没有按我的预期运行,因为我的GKE群集最终以不同的端点IP地址结尾。
是否可以将单个pod暴露给特定的预定IP地址?
答案 0 :(得分:2)
不可能通过LoadBalancer类型服务。但是,您可以使用nginx入口控制器将所有pod暴露在相同的静态IP上,并将ingress rules应用于基于路径和主机的路由。此doc演示了如何通过以下方式为入口分配静态IP: Nginx控制器。
您也可以使用GKE入口实现相同的目的。这是doc的用法。
答案 1 :(得分:1)
您无法预先分配IP。它将创建一个新的GCP LB,然后将IP /主机名存储在Status子结构中。然后,将其放入配置文件或其他任何文件中。