k8s - SVC(Service)

Service

SVC用来做服务发现

k8s定义了这样一组抽象:一个Pod的逻辑分组,一种可以访问它们的策略 - 通常称为微服务。这一组Pod能够被Service访问到,通常是通过Label Selector

每一个svc可以理解为是一个微服务

  • svc提供4层负载均衡,没有7层能力,但有时我们需要更多的匹配规则来转发请求,这点上4层负载均衡是不支持的。

也就是说,svc只能够通过ip和端口进行转发,不能通过域名和主机名来实现负载均衡

通过Ingress可以使SVC具有7层负载均衡的能力

service的四种类型

  1. ClusterIP: 默认类型,自动分配一个仅Cluster内部可以访问的IP
  2. NodePort:在ClusterIP的基础上为每台机器上绑定一个端口,这样就可以通过<NodeIP>:<NodePort>访问服务
  3. LoadBalancer: 在NodePort的基础上,借助cloud provider创建一个外部负载均衡器,并将请求转发到<NodeIP>:<NodePort>
  4. ExtrenalName: 把集群内部的服务引入到集群内部来,在集群内部直接使用。没有任何的代理被创建,这只有k8s>1.7或者更高版本的kube-dns支持。

svc原理导论图
k8s - SVC(Service)

上一篇:nginx配置静态资源缓存, 同时配合k8s的SVC(core dns)实现负载均衡


下一篇:python – 为什么sys.path不包含cwd()?