云容器引擎 CCE-创建负载均衡类型的服务:创建LoadBalancer类型Service

时间:2024-05-31 08:37:31

创建LoadBalancer类型Service

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 在左侧导航栏中选择“服务”,在右上角单击“创建服务”
  3. 设置参数。

    • Service名称:自定义服务名称,可与工作负载名称保持一致。
    • 访问类型:选择“负载均衡”
    • 命名空间:工作负载所在命名空间。
    • 服务亲和:详情请参见服务亲和(externalTrafficPolicy)
      • 集群级别:集群下所有节点的IP+访问端口均可以访问到此服务关联的负载,服务访问会因路由跳转导致一定性能损失,且无法获取到客户端源IP。
      • 节点级别:只有通过负载所在节点的IP+访问端口才可以访问此服务关联的负载,服务访问没有因路由跳转导致的性能损失,且可以获取到客户端源IP。
    • 选择器:添加标签,Service根据标签选择Pod,填写后单击“确认添加”。也可以引用已有工作负载的标签,单击“引用负载标签”,在弹出的窗口中选择负载,然后单击“确定”
    • IPv6:默认不开启,开启后服务的集群内IP地址(ClusterIP)变为IPv6地址,具体请参见如何通过CCE搭建IPv4/IPv6双栈集群?该功能仅在1.15及以上版本的集群创建时开启了IPv6功能才会显示。
    • 负载均衡器:选择弹性负载均衡的类型、创建方式。

      ELB类型可选择“独享型”“共享型”,独享型ELB还可以根据支持的协议类型选择“网络型(TCP/UDP/TLS)”“应用型(HTTP/HTTPS)”“网络型(TCP/UDP/TLS)&应用型(HTTP/HTTPS)”

      创建方式可选择“选择已有”“自动创建”。不同创建方式的配置详情请参见表1

      当集群使用共享VPC时,不支持自动创建共享型ELB。

      表1 ELB配置

      创建方式

      配置

      选择已有

      仅支持选择与集群在同一个VPC下的ELB实例。如果没有可选的ELB实例,请单击“创建负载均衡器”跳转到ELB控制台创建。

      自动创建

      • 实例名称:请填写ELB名称。
      • 企业项目:该参数仅对开通企业项目的企业客户账号显示。企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理。
      • 可用区(仅独享型ELB支持):可以选择在多个可用区创建负载均衡实例,提高服务的可用性。如果业务需要考虑容灾能力,建议选择多个可用区。
      • 前端子网(仅独享型ELB支持):用于分配ELB实例对外服务的IP地址。
      • 后端子网(仅独享型ELB支持):用于与后端服务建立连接的IP地址。
      • 网络型规格/应用型规格/规格(仅独享型ELB支持):
        • 弹性规格:适用于业务用量波动较大的场景,按实际使用量收取每小时使用的容量费用。v1.21.10-r10、v1.23.8-r10、v1.25.3-r10及以上版本集群支持使用弹性规格。
        • 固定规格:适用于业务用量较为稳定的场景,按固定规格折算收取每小时使用的容量费用。
      • 弹性公网IP:选择“自动创建”时,可配置公网带宽的计费方式及带宽大小。
      • 资源标签:通过为资源添加标签,可以对资源进行自定义标记,实现资源的分类。您可以在TMS中创建“预定义标签”,预定义标签对所有支持标签功能的服务资源可见,通过使用预定义标签可以提升标签创建和迁移效率。
      • 全域弹性公网(仅独享型ELB支持):选择绑定全域弹性公网IP实例,实现公网带宽资源在实例间分配与使用,控制全域弹性公网IP与公网间通信的速率。关于全域弹性公网更多信息,请参见全域公网带宽概述

      负载均衡配置:您可以单击负载均衡配置的图标配置ELB实例的参数,在弹出窗口中配置ELB实例的参数。

      • 分配策略:可选择加权轮询算法、加权最少连接或源IP算法。
        • 加权轮询算法:根据后端服务器的权重,按顺序依次将请求分发给不同的服务器。它用相应的权重表示服务器的处理性能,按照权重的高低以及轮询方式将请求分配给各服务器,相同权重的服务器处理相同数目的连接数。常用于短连接服务,例如HTTP等服务。
        • 加权最少连接:最少连接是通过当前活跃的连接数来估计服务器负载情况的一种动态调度算法。加权最少连接就是在最少连接数的基础上,根据服务器的不同处理能力,给每个服务器分配不同的权重,使其能够接受相应权值数的服务请求。常用于长连接服务,例如数据库连接等服务。
        • 源IP算法:将请求的源IP地址进行Hash运算,得到一个具体的数值,同时对后端服务器进行编号,按照运算结果将请求分发到对应编号的服务器上。这可以使得对不同源IP的访问进行负载分发,同时使得同一个客户端IP的请求始终被派发至某特定的服务器。该方式适合负载均衡无cookie功能的TCP协议。
      • 会话保持类型:默认不启用,可选择“源IP地址”。基于源IP地址的简单会话保持,即来自同一IP地址的访问请求转发到同一台后端服务器上。

        分配策略使用源IP算法时,不支持设置会话保持。

    • 健康检查:设置负载均衡的健康检查配置。
      • 全局检查:全局检查仅支持使用相同协议的端口,无法对多个使用不同协议的端口生效,建议使用“自定义检查”
      • 自定义检查:在端口配置中对多种不同协议的端口设置健康检查。关于自定义检查的YAML定义,请参见Service指定多个端口配置健康检查
      表2 健康检查参数

      参数

      说明

      协议

      端口配置协议为TCP时,支持TCP和HTTP协议;当端口配置协议为UDP时,支持UDP协议。

      • 检查路径(仅HTTP健康检查协议支持):指定健康检查的URL地址。检查路径只能以/开头,长度范围为1-80。

      端口

      健康检查默认使用业务端口(Service的NodePort和容器端口)作为健康检查的端口;您也可以重新指定端口用于健康检查,重新指定端口会为服务增加一个名为cce-healthz的服务端口配置。

      • 节点端口:使用共享型负载均衡或不关联ENI实例时,节点端口作为健康检查的检查端口;如不指定将随机一个端口。取值范围为30000-32767。
      • 容器端口:使用独享型负载均衡关联ENI实例时,容器端口作为健康检查的检查端口。取值范围为1-65535。

      检查周期(秒)

      每次健康检查响应的最大间隔时间,取值范围为1-50。

      超时时间(秒)

      每次健康检查响应的最大超时时间,取值范围为1-50。

      最大重试次数

      健康检查最大的重试次数,取值范围为1-10。

    • 端口配置:
      • 协议:请根据业务的协议类型选择。Service在使用ELB提供的TLS或HTTP协议时,根据Kubernetes中定义的实现方案,需要将该参数设置为TCP并选择对应的监听器前端协议。详细说明请参见Service所用的协议
      • 服务端口:Service使用的端口,端口范围为1-65535。
      • 容器端口:工作负载程序实际监听的端口,需用户确定。例如nginx默认使用80端口。
      • 监听器前端协议:ELB监听器的前端协议,是客户端与负载均衡监听器建立流量分发连接所使用的协议。当选择独享型负载均衡器类型时,包含“应用型(HTTP/HTTPS)”方可支持配置HTTP/HTTPS;包含“网络型(TCP/UDP/TLS)”方可支持配置TLS。
      • 健康检查:健康检查选项设置为“自定义检查”时,可以为不同协议的端口配置健康检查,参数说明请参见表2

      在创建LoadBalancer类型Service时,会自动生成一个随机节点端口号(NodePort)。

    • 监听器配置:
      • SSL解析方式:当监听器端口启用HTTPS/TLS时可选择SSL解析方式。
        • 单向认证:仅进行服务器端认证。如需认证客户端身份,请选择双向认证。
        • 双向认证:双向认证需要负载均衡实例与访问用户互相提供身份认证,从而允许通过认证的用户访问负载均衡实例,后端服务器无需额外配置双向认证。
      • CA证书:SSL解析方式选择“双向认证”时需要添加CA证书,用于认证客户端身份。CA证书又称客户端CA公钥证书,用于验证客户端证书的签发者;在开启HTTPS双向认证功能时,只有当客户端能够出具指定CA签发的证书时,HTTPS连接才能成功。
      • 服务器证书:当监听器端口启用HTTPS/TLS时,必须选择一个服务器证书。如果当前无可选证书,需前往弹性负载均衡控制台进行创建,详情请参见创建证书
      • SNI:当监听器端口启用HTTPS/TLS时,可以选择是否添加SNI证书。如果需要添加SNI证书,则证书中必须包含 域名 。如果当前无可选证书,需前往弹性负载均衡控制台进行创建,详情请参见创建证书

        如果无法根据客户端请求的域名查找到域名对应的SNI证书,则默认返回服务器证书。

      • 安全策略:当监听器端口启用HTTPS/TLS时,支持选择可用的安全策略,更多信息请参见安全策略
      • 后端协议:当监听器端口启用HTTPS时,支持使用HTTP或HTTPS协议对接后端服务,默认为HTTP。当监听器端口启用TLS时,支持使用TCP或TLS协议对接后端服务,默认为TCP。
      • 访问控制:
        • 允许所有IP访问:不设置访问控制。
        • 白名单:仅所选IP地址组可以访问ELB地址。
        • 黑名单:所选IP地址组无法访问ELB地址。
      • 高级配置:

        配置

        说明

        使用限制

        获取监听器端口号

        开启后可以将ELB实例的监听端口从报文的HTTP头中带到后端云服务器。

        独享型ELB实例的端口启用HTTP/HTTPS时支持配置。

        获取客户端请求端口号

        开启后可以将客户端的源端口从报文的HTTP头中带到后端云服务器。

        独享型ELB实例的端口启用HTTP/HTTPS时支持配置。

        重写X-Forwarded-Host

        开启后将以客户端请求头的Host重写X-Forwarded-Host传递到后端云服务器。

        独享型ELB实例的端口启用HTTP/HTTPS时支持配置。

        数据压缩

        开启将对特定文件类型进行压缩;关闭则不会对任何文件类型进行压缩。

        • Brotli支持压缩所有类型。
        • Gzip支持压缩的类型如下:

          text/xml text/plain text/css application/javascript application/x-javascript application/rss+xml application/atom+xml application/xml application/json。

        独享型ELB实例的端口启用HTTP/HTTPS时支持配置。

        空闲超时时间(秒)

        客户端连接空闲超时时间。在超过空闲超时时间一直没有请求, 负载均衡会暂时中断当前连接,直到下一次请求时重新建立新的连接。

        共享型ELB实例的端口使用UDP协议时不支持此配置。

        请求超时时间(秒)

        等待客户端请求超时时间。包括两种情况:

        • 读取整个客户端请求头的超时时长,如果客户端未在超时时长内发送完整个请求头,则请求将被中断。
        • 两个连续body体的数据包到达LB的时间间隔,超出请求超时时间将会断开连接。

        仅端口启用HTTP/HTTPS时支持配置。

        响应超时时间(秒)

        等待后端服务器响应超时时间。请求转发后端服务器后,在等待超过响应超时时间没有响应,负载均衡将终止等待,并返回 HTTP504错误码。

        仅端口启用HTTP/HTTPS时支持配置。

        开启HTTP2

        客户端与LB之间的HTTPS请求的HTTP2功能的开启状态。 开启后,可提升客户端与LB间的访问性能,但LB与后端服务器间仍采用HTTP1.X协议。

        仅端口启用HTTPS时支持配置。

    • 注解:LoadBalancer类型Service有一些CCE定制的高级功能,通过注解annotations实现,具体注解的内容请参见使用Annotation配置负载均衡

  4. 单击“确定”,创建Service。
support.huaweicloud.com/usermanual-cce/cce_10_0681.html