文档首页/ 云容器引擎 CCE/ 用户指南/ 网络/ 服务(Service)/ 负载均衡(LoadBalancer)/ 为负载均衡类型的Service配置gzip数据压缩
更新时间:2024-09-04 GMT+08:00
分享

为负载均衡类型的Service配置gzip数据压缩

ELB支持开启数据压缩,通过数据压缩可缩小传输文件大小,提升文件传输效率减少带宽消耗。

  • 该功能依赖ELB能力,使用该功能前请确认当前区域是否支持。ELB已支持的区域请参见数据压缩
  • 配置数据压缩后,如果您在CCE控制台删除数据压缩配置或在YAML中删除对应的annotation,ELB侧的配置将会保留。

前提条件

  • 已创建Kubernetes集群,且集群版本满足以下要求:
    • v1.23集群:v1.23.14-r0及以上版本
    • v1.25集群:v1.25.9-r0及以上版本
    • v1.27集群:v1.27.6-r0及以上版本
    • v1.28集群:v1.28.4-r0及以上版本
    • 其他更高版本的集群

通过控制台创建

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 在左侧导航栏中选择“服务”,在右上角单击“创建服务”
  3. 设置Service参数。本示例中仅列举必选参数,其余参数可根据需求参考创建LoadBalancer类型Service进行设置。

    • Service名称:自定义服务名称,可与工作负载名称保持一致。
    • 访问类型:选择“负载均衡”
    • 选择器:添加标签,Service根据标签选择Pod,填写后单击“确认添加”。也可以引用已有工作负载的标签,单击“引用负载标签”,在弹出的窗口中选择负载,然后单击“确定”
    • 负载均衡器:选择弹性负载均衡的类型、创建方式。
      • 类型:本例中仅支持选择“独享型”,且需选择“应用型(HTTP/HTTPS)”“网络型(TCP/UDP/TLS)&应用型(HTTP/HTTPS)”,否则监听器端口将无法选择HTTP或HTTPS协议。
      • 创建方式:本文中以选择已有ELB为例进行说明,关于自动创建的配置参数请参见表1
    • 端口配置:
      • 协议:请选择TCP协议,选择UDP协议将无法使用HTTP或HTTPS。
      • 服务端口:Service使用的端口,端口范围为1-65535。
      • 容器端口:工作负载程序实际监听的端口,需用户确定。例如nginx默认使用80端口。
      • 监听器前端协议:本例中Service需选择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时支持配置。

    图1 配置数据压缩

  4. 单击“确定”,创建Service。

通过kubectl命令行创建

以关联已有ELB为例,Service配置数据压缩的YAML文件配置如下:
apiVersion: v1
kind: Service
metadata:
  name: test
  labels:
    app: nginx
  namespace: default
  annotations:
    kubernetes.io/elb.class: performance                              # ELB类型,仅支持performance,即独享型ELB
    kubernetes.io/elb.id: 35cb350b-23e6-4551-ac77-10d5298f5204        # 已有ELB的ID
    kubernetes.io/elb.protocol-port: http:80                          # 使用HTTP协议80端口
    kubernetes.io/elb.gzip-enabled: 'true'                            # 开启数据压缩
spec:
  selector:
    app: nginx
  externalTrafficPolicy: Cluster
  ports:
    - name: cce-service-0
      targetPort: 80
      nodePort: 0
      port: 80
      protocol: TCP
  type: LoadBalancer
  loadBalancerIP: **.**.**.**    # ELB的IP
表1 关键参数说明

参数

参数类型

描述

kubernetes.io/elb.gzip-enabled

String

  • true:开启,将对特定文件类型进行压缩。
  • false:关闭,不会对任何文件类型进行压缩。在默认情况下数据压缩为关闭。

支持的压缩类型如下:

  • 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类型监听器支持配置。

相关文档