• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

k8s——Service和Ingress

开发技术 开发技术 2周前 (06-10) 11次浏览

1. Service

  Service对象的IP地址也称为Cluster IP,是一种虚拟IP地址,能被同一集群的Pod资源所访问。Service端口用于接收客户端请求并将其转发至其后端的Pod中应用的相应端口之上。这种代理称为“端口代理”或四层代理,它工作于TCP/IP协议栈的传输层。

  Service资源能够以负载均衡的方式进行流量调度,实现了请求流量的分发机制。Service和Pod对象之间的关联关系通过标签选择器以松耦合的方式建立。Service并不直接链接至Pod对象,它们之间还有一个中间层——Endpoints资源对象(Service的后端端点),它是一个由IP地址和端口组成的列表,这些IP地址和端口则来自于由Service的标签选择器匹配到的Pod资源

1.1 虚拟IP和服务代理

  一个Service对象就是工作节点上的一些iptables或ipvs规则,用于将到达Service对象IP地址的流量调度转发至相应的Endpoints对象指向的IP地址和端口之上。工作于每个工作节点的kube-proxy组件通过AIP Server持续监控着各Service及与其关联的Pod对象,并将其创建或变动实时反映至当前工作节点上相应的iptables或ipvs规则上。

  kube-proxy将请求代理至相应端点的方式有三种:userspace、iptables、ipvs。

Service类型:

  ClusterIP:通过集群内部IP地址暴露服务,此地址仅在集群内部可达,而无法被集群外部的客户端访问。 

  NodePort:这种类型建立在ClusterIP类型之上,其在每个节点的IP地址的某静态端口暴露服务,NodePort类型就是在工作节点的IP地址上选择一个端口用于将集群外部的用户请求转发至目标Servce的ClusterIP和Port。

  LoadBalancer:这种类型构建在NodePort类型之上,其通过cloud provider提供的负载均衡器将服务暴露到集群外部。

  ExternalName:其通过将Service映射至由externalName字段的内容指定的主机名来暴露服务。

Service配置的port详解:

  port:service内部端口,用于集群内其他应用访问端口

  targetPort:容器端口(pod端口)  

  nodePort:对集群外部请求的端口

 

 

 

 

 

 

 

  


程序员灯塔
转载请注明原文链接:k8s——Service和Ingress
喜欢 (0)