在ACK Edge集群中使用负载均衡类型Service暴露应用

Kubernetes集群中,Service支持ClusterIP、NodePort、LoadBalancer等类型。本文主要为您介绍如何在ACK Edge集群中,通过LoadBalancer(负载均衡)类型Service对外暴露应用。

背景信息

Kubernetes集群支持的所有Service类型。关于负载均衡Service的使用方法请参见

云端应用使用负载均衡类型Service暴露服务

如果业务Pod部署在云端VPCECS上,您可以采用负载均衡类型的Service进行服务暴露,云端控制面会自动为您的业务Pod管理CLB的监听以及后端,业务请求通过CLB被均衡发送到后端Pod上。

image

边缘应用使用负载均衡类型Service暴露服务

如果业务Pod部署在边缘侧的服务器上,您可以通过云端ECS的转发能力将请求转发给边缘侧的业务Pod。

重要

您需要提前配置并关注以下事项:

  • 通过专线将云端VPC和边缘侧数据中心进行网络打通。

  • 配置负载均衡型Service的外部流量策略为Cluster,外部流量策略介绍请参见下文外部流量策略

  • 由于需要借助ECS的网络转发能力,如果ECS实例失效,则无法实现流量负载均衡。

image

使用NLB直接暴露云端/边缘的应用(推荐)

如果业务Pod部署在云端或边缘(云下IDC),您可以通过NLB暴露服务。使用前提如下:

  • 云端和边缘已经采用专线实现内网互通。

  • 采用Terway Edge容器网络插件。

您需要为NLB Service添加以下Annotation,以确保将Pod作为NLB后端。

Annotaion

描述

service.beta.kubernetes.io/backend-type: "eni"

Pod直接挂载到负载均衡后端。

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-server-group-type: "Ip"

后端服务器组类型设置为IP型。

image

外部流量策略

在集群中,当服务类型为LoadBalancerNodePort时,您才可以设置外部流量策略externalTrafficPolicy,来控制从外部网络到服务的流量路由,此策略有两种模式:LocalCluster。

说明

流量策略对Terway EdgeFlannel VXLAN插件均有效。

  • Local:流量只转发给本机Pod。

  • Cluster: 流量可转发到其他节点Pod。

image

类别

Local

Cluster

负载均衡后端挂载行为

Pod所在的节点会挂载到负载均衡后端。

所有集群内的节点都将挂载到负载均衡的后端。

负载均衡配额

负载均衡配额消耗较少。关于负载均衡配额的详细介绍,请参见配额限制

集群内所有节点都挂载到负载均衡后端,会大量消耗负载均衡配额。关于负载均衡配额的详细介绍,请参见配额限制

访问负载均衡地址

Pod所在节点可以访问负载均衡地址。

集群内任意节点均可访问负载均衡地址。

Pod负载均衡

默认Pod之间负载不均衡。

如果您想要实现Pod之间负载均衡,需要指定策略为wrr,即为Service添加Annotationservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler:"wrr"

默认Pod之间负载均衡。

保留来源IP

支持。

不支持。

会话保持

支持。

不支持。

适用场景

对需要保留客户端原始IP地址的应用程序,例如基于原始IP地址的日志记录。

当需要保证服务的高可用性,并且对源IP保存不敏感时,例如大型Web应用集群。

相关文档

关于在ENS中通过负载均衡型Service使用ELB,请参见使用ELB实现多地域服务暴露