Rancher 2.0中的负载均衡和服务暴露,与1.x区别很大……
与Rancher 1.x的名词关系
- Pod相当于容器
- Workload相当于1.x的服务
- Service相当于1.x的LB
Service对外暴露服务
Service有几种形式对外服务(Service type):
ClusterIP
默认方式,即通过容器IP来访问,全端口都通
但是可以通过 port -> targetPort 方式来改变端口
NodePor
指服务访问服务,通过nodePort对外暴露端口,例如:
一个Workload叫
MySQL
,里面有3个Pod,都暴露了3306端口
则可以定义一个Service:mysql-svc
,设置其nodePort
为5000,selector
为app=mysql
。
还可以给它设置一个ClusterIP
(虚拟IP),则可以通过mysql-svc
(DNS到ClusterIP)的5000端口来访问MySQL服务(轮询)
也可以从外部IP直接访问!!
nodePort只能写30000~32767
LoadBalancer
在阿里云下暂时还没用到。
临时想访问一个服务
kubectl port-forward POD名 本地端口:容器端口 -n XXXX
就可以通过127.0.0.1:本地端口访问服务了
注意:只能本地访问,不能远程。
(正文完)