标签:int 列表 ext 之间 adb ice strong 对象 res
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:对集群外部请求的端口
标签:int 列表 ext 之间 adb ice strong 对象 res
原文地址:https://www.cnblogs.com/xiangxiaolin/p/14872801.html