Kubernetes中的每个Service可以视为微服务架构中的微服务。Service与后端的Pod副本集群之间是通过Label Selector实现对接的。

面对一组提供服务的Pod副本集群,通常需要部署一个负载均衡器(软件或硬件),为这组Pod开启对外服务端口,并将这些Pod的Endpoint列表加入对外端口的转发列表中。当客户端访问时,负载均衡器根据算法将请求转发到相应的Pod。

而运行在每个Node上的kube-proxy进程就是智能的软件负载均衡器,负责将对Service的请求转发到后端的某个Pod势力,并在内部实现服务的负载均衡与绘画保持机制。

Kubernetes的Service并不是共用一个负载均衡器的IP地址,而是每个Service都分配一个全局唯一的虚拟IP地址,也就是Cluster IP。

当Service创建后,Kubernetes分配Cluster IP,则在整个Service生命周期,它的Cluster IP都不会发生改变。

定义Service

创建tomcat-service.yaml



多端口服务

许多服务都需要暴露多个端口,kubernetes支持多端口定义

kind: Service
apiVersion: v1
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
  - name: http
    protocol: TCP
    port: 80
    targetPort: 9376
  - name: https
    protocol: TCP
    port: 443
    targetPort: 9377

results matching ""

    No results matching ""