3hostPort这是一种一种直接定义Pod网络的方式,值得收藏!

回复“资料”领取独家整理的学习资料!

每一个成功人士的背后,都一定有一个勇敢而孤独的决定。

放弃并不难,但坚持很酷~

1

节点端口

nodePort 为集群外的客户端提供了一种访问服务的方式。它为集群外的客户端提供访问服务的端口,即 k8s 集群 nodeIP:nodePort 。

适合外部用户访问k8s集群中的服务。

优点:服务可以通过k8s集群的任意节点(安装了kube-proxy)加nodePort访问。

缺点:网络请求路由比较复杂。在并发量很大的情况下,可能会导致连接被拒绝。(我个人也遇到过这种场景,设置成hostPort访问,能hold住。)

2

港口

port是集群ip上暴露的端口,为集群中的其他容器提供访问服务的入口镜像端口是什么意思,即:ClusterIP:port。

适用于k8s集群内服务之间的通信。

3

主机端口

这是定义 pod 网络的直接方法。hostPort 是将容器的端口直接路由到调度节点上的端口。hostPort 是 pod 调度的机器上暴露的端口。您可以使用 pod 所在的节点 ip:hostPort 来访问该服务。

适合外部用户访问k8s集群中的服务。

缺点:当 Pod 重新调度时,Pod 调度到的节点可能会发生变化镜像端口是什么意思,因此用户必须手动维护 Pod 与其所在主机的对应关系。

优点:相比nodePort方式,减少了网络请求的路由,提高了请求效率和并发性。

4

目标端口

targetPort 是 pod 上的端口。来自port/nodePort的流量通过kube-proxy流入后端pod的targetPort,最后进入容器。

与制作镜像时暴露的端口一致(通过DockerFile中的EXPOSE暴露)。

5

集装箱港口

containerPort 是 pod 控制器中定义的 pod 中的容器需要暴露的端口。通常暴露的端口是程序启动时的端口。

6

概括

一般来说,port 和 nodePort 都是服务端口。前者暴露给k8s集群内部服务访问,后者暴露给k8s集群外部流量访问。前面两个端口的数据需要经过反向代理kube-proxy,流入后端pod的targetPort,最后到达pod中的容器。

nodeport和hostport都是通过host ip+port的方式访问的,区别是:hostport是通过固定的host ip访问的,nodeport是通过k8s集群的任意节点ip访问的。

欢迎留言讨论

两种方法轻松上手 ConfigMap 并将其用作容器云服务的配置中心

扫一扫,我们的故事就开始了。

此外,公众号更改了推送规则。阅读文章时别忘了点击文章底部的“点赞”按钮,微信会自动识别为关注度高的公众号。否则推送的文章可能会被其他文章淹没而找不到。谢谢你们

让我知道你在看

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论