更新时间: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管理