10.实践篇:Service资源的五种代理模式

10.实践篇:Service资源的五种代理模式

2020-02-06 20:19:48

        Service资源是Kubernetes中最核心的资源对象之一,其定义了一个统一访问的服务入口地址,客户端可以通过这个入口地址访问其背后的一组由Pod副本组成的集群实例。 Service与其后端Pod副本集群之间则是通过Label Selector标签选择器来实现动态注册和调度的。

1.为什么需要Service资源?

service.png

        我们之前提到过一个控制器:deployment,他会根据rs控制器中定义的用户期望数量,去平衡现有状态和用户状态;也有自己的选择器,关联新增的pod资源。
这两点听上去,貌似也解决了pod动态变更的问题,那我们为什么还需要引入service呢?

service的引入最重要的一点,就是给访问者提供一个固定访问入口的抽象。客户端应该直接向service发起请求,而不是pod;
同时,service通过Label Selector标签选择器来实现与后端pod进行动态注册和调度。

2.Service资源如何管理Pod

1.service通过标签选择器关联至拥有相关标签的Pod对象
2.客户端向Service进行请求,而非直接请求Pod对象
3.Service默认类型为ClusterIP,还有ExternalName,NodePort,LoadBalancer和Headless,共5种类型

service配置字段的查看命令:kubectl explain svc

2.1.ClusterIP

clusterip.png

客户端Pod对象访问服务端Pod对象时不会进行源地址转换:

  • 二者在同一主机时,源地址为客户端pod地址;

  • 二者不在同一主机时,源地址为客户端pod所在节点的flannel或cni地址。

    只能在集群内部被访问

2.2.NodePort

NodePort.png

可以被集群外部访问到,节点的请求会DNAT到Serviceip,然后再调度至PodIP

2.3.LoadBalancer

需要结合公有云的LBAAS(需要付费),支持动态接入功能。

2.4.ExternalName

externalname.png

将集群外部Service引入集群内部供各客户端使用,需要设置标签选择器,并手动定义一个endpoint资源,指向外部的资源地址。

2.5.Headless

这是一个比较特殊的service类型,有时候,你没必要或者不需要负载均衡和一个对外提供服务的ip地址。
在这种情况下,你可以在.spec.clusterIp中定义None字段,来申明一个Headless Service。
他可以通过coredns组件内部的解析功能,以完成相关地址解析的支持作用。

此外,我们之后会讲到StatefulSet控制器,它就是基于Headless网络所构筑的。

3.Endpoints

endpoints为service中的网络端点,用于接收service发来的请求,并将其转发至相关的上游服务(deployment)。
1) 命令补充

#API配置查看
kubectl explain endpoints

#endpoints信息查看
kubectl get endpoints -A

2) 注意:自定义endpoints时,需要与service同名

[root@centos-1 dingqishi]#  kubectl get svc
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP   4d23h
ngx-new      ClusterIP   10.96.232.218   <none>        80/TCP    2d5h

[root@centos-1 dingqishi]# kubectl get endpoints
NAME         ENDPOINTS                     AGE
kubernetes   192.168.0.104:6443            4d23h
ngx-new      10.244.2.8:80,10.244.2.9:80   2d5h

@版权声明:51CTO独家出品,未经允许不能转载,否则追究法律责任


版权声明:
作者:WaterBear
链接:https://l-t.top/2046.html
来源:雷霆运维
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录