我跟随库伯内特斯入门指南中的你好,世界示例。
在该示例中,在Google Container Engine上创建了一个具有3个节点/实例的集群。
要部署的容器
是一个基本的nodejs超文本传输协议服务器,它侦听8080端口。
现在当我运行kubectl时运行hello-node--image
运行kubectl规模部署hello-node--副本=4
命令会将pod数量增加到4。
但是由于每个pod都暴露了8080端口,它不会在部署两个节点的pod上创建端口冲突吗?当我做kubernetes获取pod
时,我可以看到4个pod,但是在这种情况下会有什么行为?
在slack上的#kubernetes-user
频道中获得了一些帮助:
pod
的端口。每个pod都有其唯一的IP地址。因此,没有端口冲突。服务
。kubectl公开…
公开服务
在每个节点
上分配一个NodePort
(范围在30000-32000之间)。这个端口对于每个服务都必须是唯一的。库贝-proxy
平衡这些pod之间的流量。此外,当我从浏览器访问我的服务时,我能够看到所有4个pod中的日志,因此流量来自所有4个pod。
pod公开的端口和节点上的物理端口是有区别的。这些端口需要通过例如kubernetes服务或loadBalancer进行链接,如hello-world留档http://kubernetes.io/docs/hellonode/#allow-external-traffic