Service介绍
- Service可以看作是
一组提供相同服务的Pod对外的访问接口
。借助Service,应用可以方便地实现服务发现和负载均衡。 - Service也是K8s里的最核心的资源对象之一,K8s里的每个Service其实就是我们经常提起的微服务架构中的一个
“微服务”
。 - Service 是由
kube-proxy 组件,加上 iptables
来共同实现的。 - kube-proxy 通过 iptables 处理 Service 的过程,需要在宿主机上设置相当多的 iptables 规则,如果宿主机有大量的Pod,不断刷新iptables规则,会消耗大量的CPU资源。
IPVS模式的service,可以使K8s集群支持更多量级的Pod。
Service类型
- ClusterIP:默认值,k8s系统给service自动分配的虚拟IP,只能在集群内部访问。
- NodePort:将Service通过指定的Node上的端口暴露给外部,访问任意一个NodeIP:nodePort都将路由到ClusterIP。
- LoadBalancer:在 NodePort 的基础上,借助 cloud provider 创建一个外部的负载均衡器,并将请求转发到 :NodePort,此模式只能在云服务器上使用。
创建此种类型的Service之后会产生一个对应的ExternalIP
。 - ExternalName:将服务通过 DNS CNAME 记录方式转发到指定的域名(通过 spec.externlName 设定)。
详细链接:https://blog.csdn.net/weixin_40274679/article/details/107887678?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162529650316780261985812%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=162529650316780261985812&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-2-107887678.pc_search_result_before_js&utm_term=k8s%E4%B8%AD%E7%9A%84service&spm=1018.2226.3001.4187