service概述

Service概述

1. Service 基本概念

用户在 Kubernetes 中可以部署各种容器,其中一部分是通过 HTTP、HTTPS 协议对外提供七层网络服务,另一部分是通过 TCP、UDP 协议提供四层网络服务。而 Kubernetes 定义的 Service 资源就是用来管理集群中四层网络的服务访问。
Kubernetes 的 ServiceTypes 允许指定 Service 类型,默认为 ClusterIP 类型。ServiceTypes 的可取值以及行为描述如下:

可取值 说明
ClusterIP 通过集群的内部 IP 暴露服务。当您的服务只需要在集群内部被访问时,请使用该类型。该类型为默认的 ServiceType。
NodePort 通过每个集群节点上的 IP 和静态端口(NodePort)暴露服务。NodePort 服务会路由到 ClusterIP 服务,该 ClusterIP 服务会自动创建。通过请求 ,可从集群的外部访问该 NodePort 服务。除了测试以及非生产环境以外,不推荐在生产环境中直接通过集群节点对外甚至公网提供服务。从安全上考虑,使用该类型会直接暴露集群节点,容易受到攻击。通常认为集群节点是动态的、可伸缩的,使用该类型使得对外提供服务的地址和集群节点产生了耦合。
LoadBalancer 使用容器云的负载均衡器,可以向公网或者内网暴露服务。负载均衡器可以路由到 NodePort 服务,或直接转发到容器中。

更多详情请参见 Kubernetes官方文档

2. Service类型介绍

根据上述 ServiceTypes 定义,您可以使用容器云CSK提供的以下Service类型:

Service类型 访问方式 说明
ClusterIP 仅集群内访问 使用ClusterIP类型的Service,自动分配Service CIDR中的 IP用于集群内访问(如果勾选了Headless Service 则不会自动分配 IP ,Headless Service更多详情请参见 集群内访问(ClusterIP) )。使用这种方式可以保证容器部署的应用和集群外部网络隔离。
创建完成后,集群内可通过服务名或IP + 服务端口访问。
LoadBalancer VPC 网络 使用LoadBalancer类型的Service,并选择私网访问,同一VPC下的其他云上资源(例如云服务器)即可通过子网IP,经过负载均衡器,访问到容器集群内的Pod。
创建完成后,在集群外同一VPC 网络内,可通过负载均衡 IP(即子网 IP) + 服务端口访问,集群内可通过服务名或IP + 服务端口访问。
LoadBalancer 公网 使用LoadBalancer类型的Service,选择公网访问,即可通过弹性公网IP(即EIP),经过负载均衡器,访问到容器集群内的Pod。
创建完成后,在集群外可通过EIP + 服务端口访问服务,集群内可通过服务名 + 服务端口访问。

3. 注意事项

  • 容器集群内创建 Service 会占用 Service CIDR 下 IP,请确保 Service CIDR 的剩余 IP 足够;
  • 容器集群 Service 创建的 LoadBalancer 会把流量转发到 Endpoint 内所有的 Pod 上;
  • 容器集群 Service 创建的 LoadBalancer 生命周期 和 Service 的生命周期保持一致;
  • 容器集群创建 LoadBalancer 类型的 Service ,会占用容器网络下 IP,请确保剩余 IP 足够;
  • 容器集群创建 LoadBalancer 类型的 Service ,并选择公网访问,会自动分配一个弹性公网IP,由该EIP产生的流量暂不计费。

个结果匹配 ""

    无结果匹配 ""