Kubernetes:当每个吊舱暴露一个端口时,节点中的多个吊舱
我正在跟随Kubernetes入门指南中的Hello,World示例 。
在该示例中,在Google Container Engine上创build了具有3个节点/实例的集群。
要部署的container
是一个基本的nodejs http服务器,它在端口8080上侦听。
现在当我跑步
kubectl run hello-node --image <image-name> --port 8080
它创build一个pod
和一个deployment
,在一个节点上部署该pod
。
运行
kubectl scale deployment hello-node --replicas=4
命令将pod的数量增加到4。
但是,由于每个pod公开了8080端口,是否不会在两个节点部署的pod上创build端口冲突? 当我做kubernetes get pods
,我可以看到4个豆荚,但是在这种情况下会出现什么样的行为?
在#kubernetes-users
频道上得到了一些帮助:
- 在
kubectl run ...
指定的端口是一个pod
。 并且每个吊舱都有其唯一的IP地址。 所以没有港口冲突 - 除非您将它们暴露为
service
,否则这些吊舱将不会提供stream量。 - 通过运行
kubectl expose ...
service
kubectl expose ...
在每个node
上分配一个NodePort
(范围在30000-32000)。 此端口对于每项服务都必须是唯一的。 - 如果节点具有多个Pod,则
kube-proxy
平衡这些Pod之间的stream量。
而且,当我从浏览器访问我的服务时,我能够看到所有4个豆荚中的日志,所以这4个豆荚中的stream量都被提供了。
您的pod公开的端口与节点上的物理端口是有区别的。 那些需要通过例如kubernetes 服务或loadBalancer进行链接,在hello-world文档中进一步讨论http://kubernetes.io/docs/hellonode/#allow-external-traffic
- GCloud:将文件从本地机器复制到Docker容器中
- Google容器引擎:访问云端存储
- Google Cloud上的Kubernetes 1.7:FailedSync同步错误窗格,SandboxChanged Pod沙盒已更改,将被终止并重新创build
- kubernetes:在pod启动后挂载hostpath卷
- 如何提高Kubernetes的安全性尤其是跨Pods?
- build立一个Docker镜像(.NET Core)并将其上传到Google Container Engine?
- 在Docker容器里推荐GCE服务帐号authentication?
- 将代码/文件直接注入Google云端引擎上的Kubernetes容器中
- 实例仅在需要时 – GCP