文档首页 > > 最佳实践> 网络> Ingress中的property字段与社区client-go兼容

Ingress中的property字段与社区client-go兼容

分享
更新时间: 2019/11/25 GMT+08:00

使用场景

社区Ingress结构体中没有property属性,导致用户使用client-go调用创建ingress的api接口时,创建的Ingress中没有property属性。为了与社区的client-go兼容,CCE提供了如下解决方案。

解决方案

在使用client-go创建Ingress实例时,在annotation中做如下声明:

kubernetes.io/ingress.property: '[{"host":"test.com","path":"/test","matchmode":"STARTS_WITH"},{"host":"test.com","path":"/dw","matchmode":"EQUAL_TO"}]'

匹配规则:用户调用CCE的Kubernetes接口创建Ingress时,会试图匹配Ingress rules中的host和path两个字段,如果和annotation中的host和path一致,则会在这条path下面注入propery属性,示例如下:

kind: Ingress
apiVersion: extensions/v1beta1
metadata:
  name: test
  namespace: default
  resourceVersion: '2904229'
  generation: 1
  labels:
    isExternal: 'true'
    zone: data
  annotations:
    kubernetes.io/ingress.class: cce
    kubernetes.io/ingress.property: '[{"host":"test.com","path":"/test","matchmode":"STARTS_WITH"},{"Path":"/dw","MatchMode":"EQUAL_TO"}]'
spec:
  rules:
     - host: test.com
       http:
        paths:
          - path: /ss
            backend:
              serviceName: zlh-test
              servicePort: 80
          - path: /dw
            backend:
              serviceName: zlh-test
              servicePort: 80

转换后的格式如下:

kind: Ingress
apiVersion: extensions/v1beta1
metadata:
  name: test
  namespace: default
  resourceVersion: '2904229'
  generation: 1
  labels:
    isExternal: 'true'
    zone: data
  annotations:
    kubernetes.io/ingress.class: cce
    kubernetes.io/ingress.property: '[{"host":"test.com","path":"/ss","matchmode":"STARTS_WITH"},{"host":"","path":"/dw","matchmode":"EQUAL_TO"}]'
spec:
  rules:
     - host: test.com
       http:
        paths:
          - path: /ss
            backend:
              serviceName: zlh-test
              servicePort: 80
            property:
              ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH
          - path: /dw
            backend:
              serviceName: zlh-test
              servicePort: 80
表1 关键参数说明

参数

参数类型

描述

host

String

域名配置。

若不配置,会自动匹配path。

path

String

匹配路径。

ingress.beta.kubernetes.io/url-match-mode

String

路由匹配策略,取值如下:

  • REGEX:正则匹配
  • STARTS_WITH:前缀匹配
  • EQUAL_TO:精确匹配
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区