Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ Cloud Container Engine/ Perguntas frequentes/ Redes/ Configuração de rede/ Como obter compatibilidade entre a propriedade do ingress e o cliente-go do Kubernetes?
Atualizado em 2025-05-23 GMT+08:00

Como obter compatibilidade entre a propriedade do ingress e o cliente-go do Kubernetes?

Cenário

A estrutura de ingress do Kubernetes não contém o atributo property. Portanto, a entrada criada pelo client-go por meio da chamada da API não contém o atributo dproperty. O CCE fornece uma solução para garantir a compatibilidade com o client-go do Kubernetes.

Solução

Ao usar client-go para criar uma instância de ingress, faça a seguinte declaração na annotation:

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

Regra de correspondência: quando um usuário chama a interface Kubernetes do CCE para criar uma instância de ingress, o CCE tenta corresponder os campos host e path nas regras de ingress. Se os campos host e path nas regras de ingress forem os mesmos da anotação, o CCE injetará o atributo property no caminho. O seguinte é um exemplo:

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

O formato após a conversão é o seguinte:

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
Tabela 1 Descrições de parâmetros-chave

Parâmetro

Tipo

Descrição

host

String

Configuração de nome de domínio.

Se este parâmetro não for definido, o path será automaticamente correspondido.

path

String

Caminho de correspondência.

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

String

Política de correspondência de rotas. Os valores são os seguintes:

  • REGEX: indica correspondência de expressão regular.
  • STARTS_WITH: indica correspondência de prefixo.
  • EQUAL_TO: indica correspondência exata.