回复“资料”领取独家整理的学习资料!
每一个成功人士的背后,都一定有一个勇敢而孤独的决定。
放弃并不难,但坚持很酷~
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 并将其用作容器云服务的配置中心
扫一扫,我们的故事就开始了。
此外,公众号更改了推送规则。阅读文章时别忘了点击文章底部的“点赞”按钮,微信会自动识别为关注度高的公众号。否则推送的文章可能会被其他文章淹没而找不到。谢谢你们
让我知道你在看
请登录后发表评论
注册
社交帐号登录