Gerir o gateway de entrada do Apigee

Configurar o gateway de entrada do Apigee

Pode configurar os gateways de entrada no seu overrides.yaml. Por exemplo:

Sintaxe

ingressGateways:
- name: INGRESS_NAME
  replicaCountMin: REPLICAS_MIN
  replicaCountMax: REPLICAS_MAX
  resources:
    requests:
      cpu: CPU_COUNT_REQ
      memory: MEMORY_REQ
    limits:
      cpu: CPU_COUNT_LIMIT
      memory: MEMORY_LIMIT
  svcAnnotations:  # optional.
    SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE
  svcLoadBalancerIP: SVC_LOAD_BALANCER_IP # optional

Exemplo

ingressGateways:
- name: prod1
  replicaCountMin: 2
  replicaCountMax: 100
  resources:
    requests:
      cpu: 1
      memory: 1Gi
    limits:
      cpu: 2
      memory: 2Gi
  svcAnnotations:  # optional. See Known issue 243599452.
    networking.gke.io/load-balancer-type: "Internal"
  svcLoadBalancerIP: 198.252.0.123 
  • INGRESS_NAME é o nome da implementação da gateway de entrada. Pode ser qualquer nome que cumpra os seguintes requisitos:
    • Ter um comprimento máximo de 17 carateres
    • Contêm apenas carateres alfanuméricos minúsculos, "-" ou "."
    • Começar com um caráter alfanumérico
    • Terminar com um caráter alfanumérico

    Consulte ingressGateways[].name na referência da propriedade de configuração

  • REPLICAS_MIN e REPLICAS_MAX O número mínimo e máximo de réplicas para o gateway de entrada do Apigee na sua instalação. Consulte ingressGateways[].replicaCountMin e ingressGateways[].replicaCountMax na referência da propriedade de configuração.
  • CPU_COUNT_REQ e MEMORY_REQ O pedido de CPU e memória para cada réplica do gateway de entrada do Apigee na sua instalação.

    Consulte ingressGateways[].resources.requests.cpu e ingressGateways[].resources.requests.memory na referência da propriedade de configuração.

  • CPU_COUNT_LIMIT e MEMORY_LIMIT Os limites máximos de CPU e memória para cada réplica do gateway de entrada do Apigee na sua instalação.

    Consulte ingressGateways[].resources.limits.cpu e ingressGateways[].resources.limits.memory na referência da propriedade de configuração.

  • SVC_ANNOTATIONS_KEY SVC_ANNOTATIONS_VALUE (opcional):

    Este é um par de chave-valor que fornece anotações para o seu serviço de entrada predefinido. A sua plataforma na nuvem usa anotações para ajudar a configurar a instalação híbrida, por exemplo, definindo o tipo de balanceador de carga como interno ou externo. Por exemplo:

    ingressGateways:
      svcAnnotations:
        networking.gke.io/load-balancer-type: "Internal"

    As anotações variam de plataforma para plataforma. Consulte a documentação da sua plataforma para ver as anotações obrigatórias e sugeridas.

    Consulte ingressGateways[].svcAnnotations na referência da propriedade de configuração.
  • SVC_LOAD_BALANCER_IP (opcional). Em plataformas que suportam a especificação do endereço IP do balanceador de carga, o balanceador de carga é criado com este endereço IP. Em plataformas que não permitem especificar o endereço IP do equilibrador de carga, esta propriedade é ignorada. Consulte ingressGateways[].svcLoadBalancerIP na referência da propriedade de configuração.

Aplique a configuração do gateway de entrada do Apigee

Aplique alterações ao âmbito da organização:

helm upgrade ORG_NAME apigee-org/ \
  --namespace apigee \
  --atomic \
  -f OVERRIDES_FILE.yaml

Tarefas de gestão

Algumas tarefas de gestão comuns para o gateway de entrada do Apigee:

Escalar o gateway de entrada do Apigee:

Atualize as seguintes propriedades no ficheiro de substituições.

  • ingressGateways[].replicaCountMax
  • ingressGateways[].replicaCountMin

Consulte ingressGateways na referência de propriedades de configuração para ver detalhes.

Aplique as alterações:

helm upgrade ORG_NAME apigee-org/ \
  --namespace apigee \
  --atomic \
  -f OVERRIDES_FILE.yaml

Atualização da atribuição de recursos

Atualize as seguintes propriedades no ficheiro de substituições.

  • ingressGateways[].resources.limits.cpu
  • ingressGateways[].resources.limits.memory
  • ingressGateways[].resources.requests.cpu
  • ingressGateways[].resources.requests.memory

Consulte ingressGateways na referência de propriedades de configuração para ver detalhes.

Aplique as alterações:

helm upgrade ORG_NAME apigee-org/ \
  --namespace apigee \
  --atomic \
  -f OVERRIDES_FILE.yaml

Atualizar o serviço de gateway de entrada do Apigee

Atualize as seguintes propriedades no ficheiro de substituições.

  • ingressGateways[].svcAnnotations
  • ingressGateways[].svcLoadBalancerIP

Consulte ingressGateways na referência de propriedades de configuração para ver detalhes.

Aplique as alterações:

helm upgrade ORG_NAME apigee-org/ \
  --namespace apigee \
  --atomic \
  -f OVERRIDES_FILE.yaml

Desative o balanceador de carga para o serviço de gateway de entrada do Apigee predefinido:

Se criar um serviço Kubernetes personalizado para a implementação do gateway de entrada, pode desativar a criação de um equilibrador de carga no serviço Kubernetes predefinido. Atualize a propriedade ingressGateways[].svcType para ClusterIP no ficheiro de substituições. Por exemplo:

ingressGateways:
  - name: my-ingress-gateway
    replicaCountMin: 2
    replicaCountMax: 10
    svcType: ClusterIP

Aplique as alterações:

helm upgrade ORG_NAME apigee-org/ \
  --namespace apigee \
  --atomic \
  -f OVERRIDES_FILE.yaml

Configure o TLS e o mTLS

Consulte o artigo Configurar TLS e mTLS no gateway de entrada.

Ativar clientes não SNI

Consulte o artigo Ative clientes HTTP e não SNI.

Instalar gateways de entrada do Apigee adicionais

No ficheiro overrides.yaml, pode adicionar vários gateways de entrada. A propriedade de configuração ingressGateways é uma matriz. Para mais informações, consulte ingressGateways na referência de propriedades de configuração.

Por exemplo:

ingressGateways:
- name: fruit
  replicaCountMin: 2
  replicaCountMax: 10

- name: meat
  replicaCountMin: 2
  replicaCountMax: 10

Aplique as alterações:

helm upgrade ORG_NAME apigee-org/ \
  --namespace apigee \
  --atomic \
  -f OVERRIDES_FILE.yaml

Mapeamento de anfitriões virtuais para implementações do gateway de entrada do Apigee

Pode usar etiquetas de seletores para mapear um anfitrião virtual para uma implementação de gateway de entrada do Apigee. No exemplo seguinte, o anfitrião virtual spam-vh está configurado para ser executado no gateway de entrada etiquetado como meat, e os outros dois anfitriões virtuais são executados no gateway de entrada fruit. Os gateways de entrada têm de estar corretamente etiquetados, conforme explicado no artigo Instalar gateways adicionais da Cloud Service Mesh.

virtualhosts:
- name: spam-vh
  sslCertPath: cert-spam.crt
  sslKeyPath: cert-spam.key
  selector:
    app: apigee-ingressgateway
    ingress_name: meat
- name: banana-vh
  sslCertPath: cert-banana.crt
  sslKeyPath: cert-banana.key
  selector:
    app: apigee-ingressgateway
    ingress_name: fruit
- name: plum-vh
  sslCertPath: cert-plum.crt
  sslKeyPath: cert-plum.key
  selector:
    app: apigee-ingressgateway
    ingress_name: fruit

    

Adicionar conjuntos de cifras personalizados a implementações de gateway de entrada do Apigee

Pode adicionar conjuntos de cifras personalizados à implementação do gateway de entrada do Apigee com a propriedade virtualhosts.cipherSuites no ficheiro de substituições.

Consulte o artigo virtualhosts.cipherSuites para ver os conjuntos de cifras predefinidos ativados no Apigee hybrid.

Pode ativar versões mais antigas do TLS com a propriedade virtualhosts.minTLSProtocolVersion e adicionar conjuntos de cifras personalizados à implementação do gateway de entrada do Apigee com a propriedade virtualhosts.cipherSuites no ficheiro de substituições.

Por exemplo, para ativar o TLS v.1.1:

virtualhosts:
- name: ENV_GROUP_NAME
  minTLSProtocolVersion: "1.1"
  cipherSuites:
  - "ECDHE-ECDSA-AES128-GCM-SHA256"
  - "ECDHE-RSA-AES128-GCM-SHA256"
  - "ECDHE-ECDSA-AES256-GCM-SHA384"
  - "ECDHE-RSA-AES256-GCM-SHA384"
  - "ECDHE-ECDSA-CHACHA20-POLY1305"
  - "ECDHE-RSA-CHACHA20-POLY1305"
  - "ECDHE-ECDSA-AES128-SHA"
  - "ECDHE-RSA-AES128-SHA"
  - "ECDHE-ECDSA-AES256-SHA"
  - "ECDHE-RSA-AES256-SHA"
  ...

Personalize os registos de acesso do Ingress

Pode personalizar o destino e o formato do registo de acesso do gateway de entrada do Apigee com as propriedades de configuração istiod.accessLogFile e istiod.accessLogFormat. No exemplo seguinte, a saída é enviada para /dev/stdout, que é o valor predefinido de istiod.accessLogFile:

istiod:
  accessLogFormat: '{"request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","status":"%RESPONSE_CODE%"}'

Pode desativar o registo de acesso do gateway de entrada do Apigee atribuindo istiod.accessLogFile e um valor vazio. Por exemplo:

istiod:
  accessLogFile: ''

Perguntas frequentes

Como é que isto funciona com a minha instalação do Cloud Service Mesh/Istio existente noutro espaço de nomes?
Desde que o Apigee esteja instalado num espaço de nomes dedicado, o gateway de entrada do Apigee pode ser executado juntamente com uma instalação do Cloud Service Mesh/Istio já existente no cluster. O gateway de entrada do Apigee não armazena nenhuma configuração no apiserver, pelo que não existe nenhum conflito.
Quem é responsável pela atualização dos componentes do gateway de entrada do Apigee?
O Apigee cuida das atualizações dos componentes do gateway de entrada do Apigee, que ocorrem durante as atualizações híbridas regulares e os lançamentos de patches.
Como posso expor a porta 80 no gateway de entrada do Apigee?
A porta 80 não é suportada pela entrada do gateway do Apigee. Se estiver a migrar do Cloud Service Mesh para o gateway de entrada do Apigee e tiver seguido as instruções na publicação da comunidade para ativar a porta 80, esta não vai funcionar com o gateway de entrada do Apigee.