Pod地址可变性
Pod销毁重建后,其IP地址也会变化,例如deployment工作负载升级时,新建的pod地址会改变。Kubernetes的Service可提供一个固定的IP地址(来自订购集群时配置的服务网段)和Service域名,结合标签选择器,对一组pod做负载均衡。客户端可通过该地址或域名访问IP地址可变的pod。如下图所示,nginx部署的前端服务,通过service地址访问后端服务.
Service类型
Service支持如下类型:
ClusterIP:Service默认类型,用于集群内应用间访问,客户端可通过ClusterIP或内部Service域名访问后端Pod;
NodePort:用于集群外部访问集群内服务,将Service通过集群节点固定端口暴露,集群外部可通过任一集群节点IP和该固定端口来访问Serivce;
LoadBalancer:用于集群外部访问集群内服务,通过LoadBalancer实例访问NodePort或直通Pod,相对于NodePort方式,有更高的可用性和性能;
Headless:该类Service没有IP地址,可用于DNS负载均衡场景,客户端访问Service域名时会通过DNS返回该Service所有后端Pod的IP地址;
ExternalName:将集群外部域名映射到集群内部Service上,使得集群内可通过Service名访问外部域名。
Service创建
登录云容器引擎控制台,进入指定集群,选择服务(Service)>创建,按需配置信息即可。