更新时间:2025-08-12 GMT+08:00

为负载均衡类型的Service配置HTTP协议

配置HTTP协议Service

在工作负载创建完成后对Service进行配置,此配置对工作负载状态无影响,且实时生效。具体操作如下:

  1. 登录云容器实例 CCI2.0控制台。
  2. 左侧导航栏中选择“服务管理”,在右侧页面单击“YAML创建”
  3. 导入或者添加Service yaml。

    Service文件格式说明

    • Service.yaml资源描述
      apiVersion: cci/v2
      kind: Service
      metadata:
        name: kubectl-test
        namespace: kubectl
        annotations:
          kubernetes.io/elb.class: elb
          kubernetes.io/elb.id: 1234567890 #关联的elb id,只支持独享型elb,不支持共享型elb。
          kubernetes.io/elb.protocol-port: "http:80"  # HTTP协议及端口号,需要与spec.ports中的端口号对应
      spec:
        selector:
          app: kubectl-test #关联的负载label。
        ports:
          - name: service-0
            targetPort: 80   #容器开放的端口。
            port: 80         #访问端口。
            protocol: TCP    #协议需指定为TCP。
        type: LoadBalancer
    • Service.json资源描述
      {
      	"apiVersion": "cci/v2",
      	"kind": "Service",
      	"metadata": {
      		"name": "kubectl-test",
      		"namespace": "kubectl",
      		"annotations": {
                              "kubernetes.io/elb.class": "elb",
      			"kubernetes.io/elb.id": "1234567890"  #关联的elb id,只支持独享型elb,不支持共享型elb。
                              "kubernetes.io/elb.protocol-port": "http:80"  #HTTP协议及端口号,需要与spec.ports中的端口号对应
      		}
      	},
      	"spec": {
      		"selector": {
      			"app": "kubectl-test" #关联的负载label。
      		},
      		"ports": [
      			{
      				"name": "service-0",
      				"targetPort": 80,     #容器开放的端口。
      				"port": 80,           #访问端口。
      				"protocol": "TCP",    #协议需指定为TCP。
      				"type": "LoadBalancer"
      			}
      		]
      	}
      }

  4. 单击“确定”,创建Service。查看服务管理页面,根据访问地址IP和端口映射中的访问端口[IP:访问端口],即可访问负载。

更新Service

您可以在添加完Service后,更新此Service的访问端口。操作如下:

  1. 登录云容器实例 CCI2.0控制台。
  2. 左侧导航栏中选择“服务管理 ”,在服务管理页面中,选择对应的命名空间,单击需要更新端口配置的Service后的“YAML编辑”。
  3. 仅支持更新Service内访问端口参数修改:

    端口配置:spec.ports[i].port:访问端口,端口范围为1-65535,可任意指定。需同步修改 "kubernetes.io/elb.protocol-port": "http:80" 端口。

  4. 单击“确定”。工作负载已更新Service。

HTTP协议Service参数配置

您可以参考下表添加annotations字段配置HTTP协议类型Service的监听器

参数

参数说明

kubernetes.io/elb.http2-enable

表示HTTP/2功能的开启状态。开启后,可提升客户端与LB间的访问性能,但LB与后端服务器间仍采用HTTP1.X协议。

取值范围:

  • true:开启HTTP/2功能;
  • false:关闭HTTP/2功能(默认为关闭状态)。
    注意:

    仅监听器的协议为HTTPS时,支持开启或关闭HTTP/2功能当监听器的协议为HTTP时,该字段无效,默认将其设置为false。

kubernetes.io/elb.tls-certificate-ids

ELB服务中的SNI证书ID列表(SNI证书中必须带有域名),不同ID间使用英文逗号隔开。

获取方法:在ELB控制台,进入“弹性负载均衡 > 证书管理”获取。

kubernetes.io/elb.security-pool-protocol

监听器前端协议为HTTPS时,可以开启后端安全协议,开启后后端协议为HTTPS。不支持更新已有监听器的后端安全协议,更新后仅对新创建的监听器生效

  • true:表示开启
  • false:表示关闭

kubernetes.io/elb.tls-ciphers-policy

监听器使用的安全策略。

取值:tls-1-0-inherit,tls-1-0, tls-1-1, tls-1-2,tls-1-2-strict,tls-1-2-fs,tls-1-0-with-1-3, tls-1-2-fs-with-1-3, hybrid-policy-1-0,默认:tls-1-0。

仅对HTTPS协议类型的监听器且关联LB为独享型时有效。

kubernetes.io/elb.x-forwarded-port

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

  • true:表示开启
  • false:表示关闭

仅独享型ELB的HTTP/HTTPS类型监听器支持配置。

kubernetes.io/elb.x-forwarded-for-port

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

  • true:表示开启
  • false:表示关闭

仅独享型ELB的HTTP/HTTPS类型监听器支持配置。

kubernetes.io/elb.x-forwarded-host

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

  • true:表示开启
  • false:表示关闭

仅独享型ELB的HTTP/HTTPS类型监听器支持配置。

kubernetes.io/elb.gzip-enabled

数据压缩

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