更新时间:2024-12-18 GMT+08:00
为ELB Ingress配置自定义Header转发策略
独享型ELB的Ingress支持自定义Header的转发策略,可通过不同的Header键值来确定转发的后端Service。
前提条件
已创建满足条件的集群:
- v1.23集群:v1.23.16-r0及以上
- v1.25集群:v1.25.11-r0及以上
- v1.27集群:v1.27.8-r0及以上
- v1.28集群:v1.28.6-r0及以上
- v1.29集群:v1.29.2-r0及以上
通过kubectl命令行设置
以使用已有ELB创建Ingress的场景为例,YAML配置示例如下:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: test-header namespace: default annotations: kubernetes.io/elb.port: '80' kubernetes.io/elb.id: 08eab934-1636-4d90-a4cd-cb3fa4330411 kubernetes.io/elb.class: performance #需使用独享型ELB # 表示只能通过Header key1=value1或者key1=value2访问/a路径,最终访问到的服务是 svc-a:80 kubernetes.io/elb.headers.svc-a: | { "key": "key1", "values": [ "value1", "value2" ] } # 表示只能通过Header key2=value1或者key2=value2访问/b路径,最终访问到的服务是 svc-b:81 kubernetes.io/elb.headers.svc-b: | { "key": "key2", "values": [ "value1", "value2" ] } spec: rules: - host: '' http: paths: - path: /a backend: service: name: svc-a port: number: 80 property: ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH pathType: ImplementationSpecific - path: /b backend: service: name: svc-b port: number: 81 property: ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH pathType: ImplementationSpecific ingressClassName: cce
参数 |
类型 |
描述 |
---|---|---|
kubernetes.io/elb.headers.${svc_name} |
String |
Ingress关联的Service配置自定义的Header,${svc_name}即对应的Service名称。 格式说明:Json字符串,如 {"key": "test", "values": ["value1", "value2"]} |
父主题: ELB Ingress管理