我试图绕过kubernetes(k8s)如何利用端口。在阅读了API文档以及可用的文档后,我不确定端口映射和端口流如何工作。
假设我有三个带有外部托管数据库的容器,我的k8s群集是三个本地CoreOS节点,并且在所有三个节点前面都有一个软件定义的负载均衡器,可以将流量转发给所有端口3306和10082上有三个节点。
我有三个服务来抽象复制控制器。
我有一个外部数据库端点,配置为使用IPv4地址在端口3306上。
目标:
有了这个:
port
,targetPort
,nodePort
等?答案 0 :(得分:1)
感谢非常详细的设置,但我仍然有一些问题。
1)当你说“容器”{A,B,C}时,你的意思是Pod?或者是同一个Pod中的A,B,C容器?
2)“容器B利用传入端口8081与容器A和C通信” - 你是说它使用INcoming端口与其他容器通信是什么意思?谁打开了连接,对谁以及目的地端口?
3)“需要在端口3306上访问外部数据库”,但稍后“需要能够从端口3306上的外部系统到达” - B是否访问外部数据库或是否在3306上为数据库服务?
我很困惑交通流量在哪里以及在这个解释中它将会出现在哪里。
一般来说,你应该避免考虑节点,你应该避免考虑pods与pods(或容器与容器)交谈。您有一些服务,每个服务都有一些Pod支持。客户端窗格(通常)与服务进行通信。服务会在port
上接收流量,并将该流量发送到Pod上相应的targetPort
。 Pods在containerPort上接收流量。
这些都不需要hostPorts或nodePorts。最后一个问题是需要从群集外部访问哪些服务,以及您的环境能够实现负载平衡。
如果你回答这个问题,我可以回来第2轮:)