更新时间:2024-01-05 GMT+08:00
分享

ELB Ingress对接GRPC协议的后端服务

Ingress可以对接不同协议的后端服务,在默认情况下Ingress的后端代理通道是HTTP协议的,若需要建立GRPC协议的通道,可在annotation字段中加入如下配置:

kubernetes.io/elb.pool-protocol: grpc

约束与限制

  • 仅支持v1.23.10-r20、v1.25.5-r20、v1.27.2-r20、v1.28.1-r0及以上集群版本使用该能力。
  • 仅使用独享型ELB时,Ingress支持对接GRPC协议的后端服务。当前该功能依赖ELB的监听器能力,仅在部分区域开放,请根据当前区域的控制台选项进行确认。
  • 对接GRPC协议的后端服务时,Ingress的对外协议也需要选择HTTPS,且需要开启HTTP/2。

通过控制台配置GRPC协议的后端服务

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

    • 名称:自定义Ingress名称,例如ingress-demo。
    • 负载均衡器:选择对接的ELB实例或自动创建ELB实例,仅支持使用独享型ELB。
    • 监听器配置:选择“对外协议”“HTTPS”“后端协议”可选择“GRPC”。其余配置参数可根据实际需求进行填写,详细说明请参见通过控制台创建ELB Ingress

      仅独享型ELB支持选择GRPC协议,且需开启HTTP/2,系统将自动为您添加kubernetes.io/elb.http2-enable:true注解。当前GRPC功能仅在部分区域开放,请以控制台呈现为准。

    • 转发策略配置:选择一个目标服务,将请求转发到对应的目标Service处理。

      (可选)设置健康检查协议为GRPC:单击“更改配置”,启用健康检查,并选择GRPC协议。

  4. 配置完成后,单击“确定”

使用kubectl对接GRPC协议的后端服务

Ingress配置示例如下:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-test
  namespace: default
  annotations:
    kubernetes.io/elb.port: '443'
    kubernetes.io/elb.id: <your_elb_id>    #本示例中使用已有的独享型ELB,请替换为您的独享型ELB ID
    kubernetes.io/elb.class: performance
    kubernetes.io/elb.pool-protocol: grpc  # 对接GRPC协议的后端服务
    kubernetes.io/elb.http2-enable: 'true' # 开启HTTP/2功能
    kubernetes.io/elb.tls-ciphers-policy: tls-1-2
spec:
  tls: 
    - secretName: ingress-test-secret
  rules:
    - host: ''
      http:
        paths:
          - path: '/'
            backend:
              service:
                name: <your_service_name>  #替换为您的目标服务名称
                port:
                  number: 80
            property:
              ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH
            pathType: ImplementationSpecific
  ingressClassName: cce
分享:

    相关文档

    相关产品