文档首页/
云容器引擎 CCE/
用户指南/
网络/
路由(Ingress)/
ELB Ingress管理/
ELB Ingress高级配置示例/
为ELB Ingress配置自定义Header转发策略
更新时间:2024-11-12 GMT+08:00
为ELB Ingress配置自定义Header转发策略
独享型ELB的Ingress支持自定义Header的转发策略,可通过不同的Header键值来确定转发的后端Service。
前提条件
- 已创建一个CCE Standard或CCE Turbo集群,且集群版本满足以下要求:
- 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连接到集群,详情请参见通过kubectl连接集群。
通过kubectl命令行配置
- 请参见通过kubectl连接集群,使用kubectl连接集群。
- 创建名为“ingress-test.yaml”的YAML文件,此处文件名可自定义。
vi ingress-test.yaml
以使用已有ELB创建Ingress的场景为例,YAML配置示例如下:apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-test 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
表1 自定义Header转发策略注解 参数
类型
描述
kubernetes.io/elb.headers.${svc_name}
String
Ingress关联的Service配置自定义的Header,${svc_name}即对应的Service名称。
格式说明:Json字符串,如 {"key": "test", "values": ["value1", "value2"]}
- 创建Ingress。
kubectl create -f ingress-test.yaml
回显如下,表示Ingress服务已创建。
ingress/ingress-test created
- 查看已创建的Ingress。
kubectl get ingress
回显如下,表示Ingress服务创建成功。
NAME CLASS HOSTS ADDRESS PORTS AGE ingress-test cce * 121.**.**.** 80 10s