Kubernetes技术与架构-服务

从软件系统架构设计分层的角度看,Kubernetes的Service是基于Pod的上层,业务应用部署在Pod中,使用Service绑定Pod部署的应用,Service可以对外或者对上层提供服务,当Pod集群在系统调度的过程中发生弹性伸缩的时候,Service无需关注Pod层的变化,从而将Service层与Pod层解耦合,本文主要描述Service的基本使用方式。

Kubernetes技术与架构-服务_第1张图片

如上所示,定义一个名称为my-service的服务,使用选择器绑定名称是MyApp的Pod,该Service以端口80对外提供服务

Kubernetes技术与架构-服务_第2张图片

如上所示,先定义一个名称是proxy运行着NGINX的Pod,再定义一个名称是nginx-service的Service,该Service与proxy Pod绑定

Kubernetes技术与架构-服务_第3张图片

Kubernetes技术与架构-服务_第4张图片

如上所示,先定义一个未绑定任何Pod的Service服务my-service,再定一个名称是my-service-1的EndpointSlice端点集合类型,绑定端点集与my-service的关系

Kubernetes技术与架构-服务_第5张图片

如上所示,定义一个Service类型,给该Service配置多个不同协议端口,例如,http协议80端口、https协议443端口

Kubernetes技术与架构-服务_第6张图片

如上所示,定义一个Service类型,该Service类型是NodePort,类型NodePort是使用服务器节点的物理端口作为对外提供服务的端口

ClusterIP

该Service类型是使用Kubennetes集群内部的IP地址对外提供服务

NodePort

该Service类型是使用Kubernetes集群服务器的节点IP以及对应的物理端口对外提供服务

LoadBalancer

该Service类型是使用外部提供的负载均衡器对外提供服务

ExternalName

该Service类型是使用Kubernetes集群域名系统提供的域名对外提供服务

如上所示,Kubernetes提供以上的Service类型,根据具体的业务场景使用不同的Service类型,Kubernetes默认的Service类型是ClusterIP

Kubernetes技术与架构-服务_第7张图片

如上所示,定义一个Service类型,设置其类型是LoadBalancer、设置该负载均衡器的IP地址,使用负载均衡器分发流量

Kubernetes技术与架构-服务_第8张图片

如上所示,定义一个Service类型,设置其类型是ExternalName,使用域名系统分发流量

Kubernetes技术与架构-服务_第9张图片

如上所示,定义一个Service类型,设置externalIPs对应的IP地址列表,分发流量到其他集群

你可能感兴趣的:(Kubernetes技术与架构,应用软件系统技术与架构,kubernetes,架构,容器,服务)