产品动态
公告
产品发布记录
ingress.cloud.tencent.com/enable-group: 'true' 注解,并使用 kubernetes.io/ingress.existLbId: lb-xxxxxxxx 注解指向相同的 CLB 实例。kube-system 命名空间下,查看 configmap tke-service-controller-config 和 tke-ingress-controller-config 中的 VERSION 参数,以获取对应组件的版本信息。EnableIngressController 参数值为 'true' 时,表示已启用融合版本模式。ingress.cloud.tencent.com/enable-group: 'true' 需要在创建 Ingress 时与 kubernetes.io/ingress.existLbId: lb-xxxxxxxx 同时指定,对已有 Ingress 添加注解无法启用该功能。apiVersion: v1kind: Namespacemetadata:name: ns1---apiVersion: v1kind: Namespacemetadata:name: ns2---apiVersion: networking.k8s.io/v1kind: Ingressmetadata:annotations:ingress.cloud.tencent.com/listen-ports: '[{"HTTP": 80}]'kubernetes.io/ingress.existLbId: lb-xxxxxxxx # 请修改成自己的clb idingress.cloud.tencent.com/enable-group: 'true' # 必须在 ingress 创建时指定name: nginx-ingress-1namespace: ns1spec:rules:- http:paths:- backend:service:name: nginx-serviceport:number: 80path: /pathType: ImplementationSpecific---apiVersion: networking.k8s.io/v1kind: Ingressmetadata:annotations:ingress.cloud.tencent.com/listen-ports: '[{"HTTP": 81}]'kubernetes.io/ingress.existLbId: lb-xxxxxxxx # 请修改成自己的clb idingress.cloud.tencent.com/enable-group: 'true'name: nginx-ingress-2namespace: ns2spec:rules:- http:paths:- backend:service:name: nginx-serviceport:number: 80path: /pathType: ImplementationSpecific
apiVersion: v1kind: Namespacemetadata:name: ns1---apiVersion: v1kind: Namespacemetadata:name: ns2---apiVersion: networking.k8s.io/v1kind: Ingressmetadata:annotations:ingress.cloud.tencent.com/listen-ports: '[{"HTTP": 80}]'kubernetes.io/ingress.existLbId: lb-xxxxxxxx # 请修改成自己的clb idingress.cloud.tencent.com/enable-group: 'true' # 必须在新建ingress时和 kubernetes.io/ingress.existLbId 同时指定kubernetes.io/ingress.http-rules: '[{"host":"example.com","path":"/api","backend":{"serviceName":"anyserver","servicePort":"80"}},{"host":"example.com","path":"/tmp","rewrite":{"port":80,"host":"example.com","path":"/api"}}]'kubernetes.io/ingress.https-rules: "null"kubernetes.io/ingress.rule-mix: "true"name: nginx-ingress-1namespace: ns1spec:rules:- http:paths:- backend:service:name: nginx-serviceport:number: 80path: /pathType: ImplementationSpecific---apiVersion: networking.k8s.io/v1kind: Ingressmetadata:annotations:ingress.cloud.tencent.com/listen-ports: '[{"HTTP": 80}]'kubernetes.io/ingress.existLbId: lb-xxxxxxxx # 请修改成自己的clb idingress.cloud.tencent.com/enable-group: 'true'name: nginx-ingress-2namespace: ns2spec:rules:- http:paths:- backend:service:name: nginx-serviceport:number: 80path: /homepathType: ImplementationSpecific
# 示例:不同 Ingress 复用相同 CLB 监听器,各自使用不同域名# 说明:# - 两个 Ingress 位于不同命名空间(ns1 和 ns2)# - 复用相同的 CLB(通过 kubernetes.io/ingress.existLbId 指定)# - 复用相同的监听器端口(80 和 8080)# - 各自使用不同的域名进行路由# - ns1 的 Ingress 使用域名: app1.example.com# - ns2 的 Ingress 使用域名: app2.example.comapiVersion: v1kind: Namespacemetadata:name: ns1---apiVersion: v1kind: Namespacemetadata:name: ns2---# Ingress 1: 使用域名 app1.example.comapiVersion: networking.k8s.io/v1kind: Ingressmetadata:annotations:ingress.cloud.tencent.com/listen-ports: '[{"HTTP": 80}]'ingress.cloud.tencent.com/enable-group: 'true'kubernetes.io/ingress.existLbId: lb-xxxxxxxx # 这里需要填写你自己的lbidname: app1-ingressnamespace: ns1spec:rules:- host: app1.example.comhttp:paths:- backend:service:name: app1-serverport:number: 80path: /pathType: Prefix---# Ingress 2: 使用域名 app2.example.com(复用相同的 CLB 和监听器)apiVersion: networking.k8s.io/v1kind: Ingressmetadata:annotations:ingress.cloud.tencent.com/listen-ports: '[{"HTTP": 80}]'ingress.cloud.tencent.com/enable-group: 'true'kubernetes.io/ingress.existLbId: lb-xxxxxxxx # 这里需要填写你自己的lbid(与上面相同)name: app2-ingressnamespace: ns2spec:rules:- host: app2.example.comhttp:paths:- backend:service:name: app2-serverport:number: 80path: /pathType: Prefix---# ns1 的 ServiceapiVersion: v1kind: Servicemetadata:name: app1-servernamespace: ns1labels:app: app1-serverspec:ports:- name: httpport: 80targetPort: 80selector:app: app1-servertype: NodePort---# ns1 的 DeploymentapiVersion: apps/v1kind: Deploymentmetadata:name: app1-servernamespace: ns1spec:replicas: 1selector:matchLabels:app: app1-servertemplate:metadata:labels:app: app1-serverspec:containers:- image: ccr.ccs.tencentyun.com/paas/anyservername: anyserverenv:- name: POD_NAMEvalueFrom:fieldRef:apiVersion: v1fieldPath: metadata.name---# ns2 的 ServiceapiVersion: v1kind: Servicemetadata:name: app2-servernamespace: ns2labels:app: app2-serverspec:ports:- name: httpport: 80targetPort: 80selector:app: app2-servertype: NodePort---# ns2 的 DeploymentapiVersion: apps/v1kind: Deploymentmetadata:name: app2-servernamespace: ns2spec:replicas: 1selector:matchLabels:app: app2-servertemplate:metadata:labels:app: app2-serverspec:containers:- image: ccr.ccs.tencentyun.com/paas/anyservername: anyserverenv:- name: POD_NAMEvalueFrom:fieldRef:apiVersion: v1fieldPath: metadata.name
注解 | 解释 | 是否支持(复用场景下) |
ingress.cloud.tencent.com/listen-ports | 自定义监听端口 | 支持 |
ingress.cloud.tencent.com/direct-access | 开启 CLB 直通 Pod | 支持 |
ingress.cloud.tencent.com/auto-rewrite | 使用自动重定向 | 支持 |
kubernetes.io/ingress.rule-mix | 开启混合(http/https)协议 | 支持 |
kubernetes.io/ingress.http-rules | http 协议 | 支持 |
kubernetes.io/ingress.https-rules | https 协议 | 支持 |
ingress.cloud.tencent.com/enable-grace-deletion | Pod 优雅删除 | 支持 |
ingress.cloud.tencent.com/lb-rs-weight | 自定义后端 RS 权重 | 支持 |
ingress.cloud.tencent.com/tke-service-config | 使用手动拓展配置 | 支持 |
ingress.cloud.tencent.com/pass-to-target | 默认放通 | 支持 |
ingress.cloud.tencent.com/tke-service-config-auto | 使用自动生成拓展配置 | 不支持 |
ingress.cloud.tencent.com/rewrite-support | 使用手动重定向 | 废弃 |
ingress.cloud.tencent.com/rewrite-supportkubernetes.io/ingress.http-rules 和 kubernetes.io/ingress.https-rules 中配置,无需添加此注解。ingress.cloud.tencent.com/auto-rewritefalse 均表示关闭自动重定向。ingress.cloud.tencent.com/enable-group: 'true' 以迁移到复用场景。ingress.cloud.tencent.com/status.conditions: '[{"type":"Ready","status":"True","lastTransitionTime":"2025-10-07T11:30:53Z","reason":"Success","message":""}]'
ingress.cloud.tencent.com/status.conditions: '[{"type":"Ready","status":"False","lastTransitionTime":"2025-10-07T11:35:10Z","reason":"ListenerError","message":"SyncClientError\\nErrorCode: E4403\\nDetails: Group: lb-fgim8ppi. The loadbalancerhas port conflict in the listeners 80_HTTP.\\nOriginError: ingress ns1/server2listener 80_HTTP domain example.com's path / conflict: already owned by ns1/server1\\n"}]'
ingress.cloud.tencent.com/enable-group: 'true'注解) 共用同一 CLB,报错示例如下:ingress.cloud.tencent.com/status.conditions: '[{"type":"Ready","status":"False","lastTransitionTime":"2025-10-09T12:29:05Z","reason":"LoadbalancerError","message":"SyncClientError\\nErrorCode: E4406\\nDetails: Group: lb-fgim8ppi. Can not use lb:ns1/server1 used by another ingress/multiClusterIngress .\\nOriginError:group can't reuse clb with ingress which has existLbId, please process\\n"}]'
ingress.cloud.tencent.com/status.conditions: '[{"type":"Ready","status":"False","lastTransitionTime":"2025-10-09T12:40:01Z","reason":"LoadbalancerError","message":"SyncClientError\\nErrorCode: E4407\\nDetails: Group: lb-fgim8ppi. Can not use lb:lb-fgim8ppi used by another service ns1/svc1.\\nOriginError: ingress managered by group not support reuse clb with service\\n"}]'
文档反馈