为多个pod共享相同的IP

时间:2018-01-01 21:12:27

标签: kubernetes cloud

是否可以在不同端口上的单个IP上公开不同端口的pod应用程序,例如

import tkinter as tk

def check_entry(*args):
    global entry, entry_var, label
    if entry_var.get() == "Valid String":
        label['text'] = "Correct"
    else:
        label['text'] = "Incorrect"

root = tk.Tk()

entry_var = tk.StringVar()

label = tk.Label(root)
entry = tk.Entry(root, textvariable=entry_var)

label.pack()
entry.pack()

entry_var.trace('w', check_entry)

root.mainloop()

看起来像

microservices-cart       LoadBalancer   10.15.251.89    35.195.135.146   80:30721/TCP  
microservices-comments   LoadBalancer   10.15.249.230   35.187.190.124   80:32082/TCP  
microservices-profile    LoadBalancer   10.15.244.188   35.195.255.183   80:31032/TCP     

3 个答案:

答案 0 :(得分:0)

通常使用入口资源来重用相同的外部IP。

请参阅https://kubernetes.io/docs/concepts/services-networking/ingress/

但是你必须使用路径而不是端口进行路由。

答案 1 :(得分:0)

一种可能的解决方案是组合NodePort和反向代理。 NodePort在所有节点上的不同端口上公开pod。反向代理充当入口并将流量重定向到节点。

答案 2 :(得分:0)

你必须以某种方式整合到同一个吊舱上。

您可以创建将每个端口代理到相应服务的部署。有很多方法可以创建TCP代理 - 通过nginx,节点通过包,有一个由Google维护的Go包;无论你最满意的是什么。