我正在裸机上试用Kubernetes,例如,我有暴露2002端口的docker容器(这不是HTTP)。
我不需要在各个Pod之间进行负载平衡,因为每个新Pod都在为不同的网络客户端执行自己的工作。
是否有软件可以通过内部DHCP使用新IP访问每个新创建的服务,以便保留原始容器端口?
我可以使用NodePort创建服务,并通过转发到2002端口的随机生成的端口访问此pod。
但是在访问我的容器时,我需要保留该2002端口。
每个新服务都需要通过新的LAN IP进行访问,但端口必须与容器相同。
是否有一些网络插件(LoadBalancer?)可以将DHCP分配的IP转发回此随机生成的服务端口,以便我可以通过原始端口访问容器?
答案 0 :(得分:0)
在Kubernetes中启动服务,然后使用IP:2002访问此服务,然后启动另一个服务,但与以前的容器映像相同,然后使用another_new_IP:2002进行访问
啊,这自动发生在集群内 -每个Pod都有自己的IP地址。我知道您说的是裸机,但是this post by Lyft可能会让您了解如何跳过或扩展SDN并将Pod的IP浮到可路由的地址空间中,从而完全按照自己的意愿进行操作。
更真实的说:我从来没有必要尝试过这种事情,但是CNI足够灵活,可以与DHCP服务器交互并从预定的池中提取Pod的IP,时间如此长因为池足够大,可以容纳Pod创建和终止的频率。
无论哪种方式,我绝对会读一篇博客文章,描述您为实现这一目标而进行的尝试(无论成功与否)!
另外,请注意,因为Service
一词在kubernetes中是特定的,尽管遗憾的是,该词通常在更通用的术语中使用(就像我怀疑的那样)。值得庆幸的是,Service
旨在与您想要发生的事情形成完全相反的,因此几乎没有混淆的可能性-请注意。