k8s端口区分
k8s端口区分
k8s是docker的编排工具,在原有的docker基础上,增加了pod概念,pod相当于一个虚拟机或者真机,pod内部的容器之间,可以直接使用localhost来访问。封装:docker→pod→node。加上相同的pod通过选择器,可以构成service,又形成的集群ip。总而言之,部署在docker内部的容器已经经过层层的封装,暴露的端口或者ip,对内可以访问,对外不可访问。
学习的时候,要区分,内部访问,跟外部访问。
- 内部访问,使用service (或者Cluster IP)+ port访问,能达到负载均衡的效果。
- 外部访问,使用 node ip + node port访问,没有负载均衡。但是如果访问该节点,那么内部如果使用Service,又能实现负载均衡。
相关文章
概念区分
几种ip概念跟port概念
| ip | 端口 | 访问 | |
|---|---|---|---|
| 集群 | Cluster IP | port(Service) | 内部访问 |
| pod | pod的ip | targetPort | |
| 物理节点 | node ip | nodePort | 外部访问 |
思考:端口好像还少一个,pod、容器是公用端口的吗?
对内,如果以服务名访问,是自动均衡负载,那么是如何实现的?能否进行流量控制?
对外,如果需要提供服务,以node的endpoint访问,如何实现均衡负载?要通过nginx反向代理到内服?以达到负载均衡?
配置文件中,一般多配置port,很少去配置ip。