云容器引擎 CCE-使用Annotation配置ELB Ingress:配置自定义监听端口

时间:2024-04-23 19:45:30

配置自定义监听端口

当前支持Ingress配置自定义监听端口。通过该方式,可以将服务同时暴露80端口和443端口。

表8 自定义监听端口注解

参数

类型

描述

支持的集群版本

kubernetes.io/elb.listen-ports

String

为同一个Ingress创建多个监听端口,端口号范围为1~65535。

参数值为JSON格式的字符串,示例如下:

kubernetes.io/elb.listen-ports: '[{"HTTP":80},{"HTTPS":443}]'
  • 仅支持同时配置HTTP和HTTPS协议的监听端口。
  • 仅支持新建Ingress场景,且配置多个监听端口后annotation不支持修改和删除。
  • 同时指定多监听器(kubernetes.io/elb.listen-ports)和单监听器(kubernetes.io/elb.port)配置时,多监听器优先级更高。
  • Ingress内配置项对多个监听器同时生效,如黑白名单配置、超时时间配置。
  • 不支持高级转发策略。

v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0及以上版本

以使用已有ELB为例,配置示例如下:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/elb.id: 2c623150-17bf-45f1-ae6f-384b036f547e     # 已有ELB的ID
    kubernetes.io/elb.class: performance    # ELB的类型
    kubernetes.io/elb.listen-ports: '[{"HTTP": 80},{"HTTPS": 443}]'    # 多监听器配置
    kubernetes.io/elb.tls-certificate-ids: 6cfb43c9de1a41a18478b868e34b0a82,6cfb43c9de1a41a18478b868e34b0a82   # HTTPS证书配置
  name: test-https
  namespace: default
spec:
  ingressClassName: cce
  rules:
  - host: xxx.com
    http:
      paths:
      - backend:
          service:
            name: test
            port:
              number: 8888
        path: /
        pathType: ImplementationSpecific
        property:
          ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH
support.huaweicloud.com/usermanual-cce/cce_10_0695.html