kubernetes Service的几种类型
# kubectl explain service.spec.type
-
ClusterlP:默认的类型,用于k8s内部之间的服务访问,即通过内部的service ip 实现服务间的访问,service lP仅可以在内部访问,不能从外部访问。
-
NodePort:在 cluster IP的基础之上,通过在每个node 节点监听一个可以指定宿主机端口(nodePort)来暴露服务,从而允许外部client访问k8s集群中的服务,nodePort把外部client的请求转发至service进行处理,
-
LoadBalancer:主要在公有云如阿里云、AWS上使用,LoadBalancer构建在nodePort基础之上,通过公有云服务商提供的负载均衡器将k8s集群中的服务暴露给集群外部的 client访问。
-
ExternalName:用于将k8s集群外部的服务映射至k8s集群内部访问,从而让集群内部的pod能够通过固定的service name访问集群外部的服务,有时候也用于将不同namespace之间的pod通过ExternalName进行访问。
Service如果是cluster类型那么从 clusterlP 到pod是默认是 TCP协议,TCP支持MySQL、Redis等特定服务,另外还有UDP和SCTP协议。
Kubernetes暴露服务的几种方式
-
NodePort
-
ClusterlP
-
loadBalancerlP
-
ingress
ingress基于应用层,可以实现类似于nginx的七层代理与https等功能。
文章评论