Como gerenciar o gateway de entrada da Apigee

A partir da versão 1.8 da Apigee híbrida, a Apigee híbrida usa o gateway de entrada da Apigee para fornecer o gateway de entrada para sua instalação híbrida.

Como configurar o gateway de entrada da Apigee

É possível configurar os gateways de entrada no overrides.yaml. 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. See Known issue 243599452.
    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 implantação do gateway de entrada. Pode ser qualquer nome que atenda aos seguintes requisitos:
    • ter um comprimento máximo de 17 caracteres
    • conter apenas caracteres alfanuméricos minúsculos, "-" ou ".";
    • começar com um caractere alfanumérico;
    • terminar com um caractere alfanumérico.

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

  • REPLICAS_MIN e REPLICAS_MAX: as contagens mínima e máxima de réplicas para o gateway de entrada da Apigee na instalação. Consulte ingressGateways[].replicaCountMin e ingressGateways[].replicaCountMax na referência da propriedade de configuração.
  • CPU_COUNT_REQ e MEMORY_REQ a solicitação de CPU e memória para cada réplica do gateway de entrada da 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 da 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):

    Esse é um par de chave-valor que fornece anotações para o serviço de entrada padrão. As anotações são usadas pela sua plataforma de nuvem para ajudar a configurar sua instalação híbrida, por exemplo, definindo o tipo de balanceador de carga como interno ou externo. Exemplo:

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

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

    Consulte ingressGateways[].svcAnnotations na referência da propriedade de configuração.
  • SVC_LOAD_BALANCER_IP (opcional). Nas plataformas compatíveis com a especificação do endereço IP do balanceador de carga, o balanceador de carga será criado com esse endereço IP. Nas plataformas que não permitem especificar o IP do balanceador de carga, essa propriedade é ignorada. Consulte ingressGateways[].svcLoadBalancerIP na referência da propriedade de configuração.

Aplicar a configuração do gateway de entrada da Apigee

Aplique mudanças no escopo da organização com apigeectl.

$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --org

Tarefas de gerenciamento

Algumas tarefas de gerenciamento comuns para o gateway de entrada da Apigee:

Como escalonar o gateway de entrada da Apigee:

Atualize as seguintes propriedades no arquivo de substituição.

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

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

Aplique as mudanças com apigeectl apply --org.

Atualizando a alocação de recursos

Atualize as seguintes propriedades no arquivo de substituição.

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

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

Aplique as mudanças com apigeectl apply --org.

Como atualizar o serviço de gateway de entrada da Apigee

Atualize as seguintes propriedades no arquivo de substituição.

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

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

Aplique as mudanças com apigeectl apply --org.

Desative o balanceador de carga para o serviço de gateway de entrada padrão da Apigee:

Se você criar um serviço personalizado do Kubernetes para a implantação do gateway de entrada, será possível desativar a criação de um balanceador de carga no serviço padrão do Kubernetes. Atualize a propriedade ingressGateways[].svcType para ClusterIP no arquivo de substituição. Exemplo:

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

Aplique as mudanças com apigeectl apply --org.

Configurar TLS e mTLS

Consulte Como configurar o TLS e o mTLS no gateway de entrada.

Como ativar clientes não SNI

Ativar clientes não SNI e HTTP.

Como instalar outros gateways de entrada da Apigee

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

Exemplo:

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

- name: meat
  replicaCountMin: 2
  replicaCountMax: 10

Aplique as mudanças com apigeectl apply --org.

Associações de hosts virtuais para implantações do gateway de entrada da Apigee

É possível usar rótulos do seletor para associar um host virtual a uma implantação de gateway de entrada da Apigee. No exemplo a seguir, o host virtual spam-vh está configurado para ser executado no gateway de entrada chamado meat e os outros dois hosts virtuais são executados no gateway de entrada fruit. Os gateways de entrada precisam ser rotulados corretamente, conforme explicado em Como instalar gateways adicionais do Anthos 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

    

Como adicionar conjuntos de criptografia personalizados às implantações de gateway de entrada da Apigee

A Apigee híbrida é compatível com pacotes de criptografia TLS v1.2. Se você estiver usando o TLS v1.0 ou v1.1, use a propriedade virtualhosts.cipherSuites no arquivo de substituições para adicionar conjuntos de criptografia personalizados à implantação de gateway de entrada da Apigee.

Por exemplo, para oferecer suporte ao 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"
  ...

Por exemplo, para oferecer suporte ao TLS v.1.0:

virtualhosts:
- name: ENV_GROUP
  minTLSProtocolVersion: "1.0"
  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"
  ...

Personalizar registros de acesso de entrada

É possível personalizar o destino e o formato do registro de acesso do gateway de entrada da Apigee com as propriedades de configuração istiod.accessLogFile e istiod.accessLogFormat. No exemplo a seguir, a saída será enviada para /dev/stdout, que é o valor padrão de istiod.accessLogFile:

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

É possível desativar a geração de registros de acesso ao gateway de entrada da Apigee atribuindo istiod.accessLogFile e um valor vazio. Exemplo:

istiod:
  accessLogFile: ''

Perguntas frequentes

Como isso funciona com minha instalação atual do Anthos Service Mesh/Istio em outro namespace?
Desde que a Apigee esteja instalada em um namespace dedicado, o gateway de entrada da Apigee pode ser executado junto de uma instalação do Anthos Service Mesh/Istio no cluster. O gateway de entrada da Apigee não armazena nenhuma configuração no apiserver. Portanto, não haverá conflito.
Quem é responsável por fazer upgrade dos componentes do gateway de entrada da Apigee?
O upgrade dos componentes do gateway de entrada da Apigee é feito pela Apigee e acontece durante upgrades híbridos regulares e versões de patches.
Como expor a porta 80 no gateway de entrada da Apigee?
A porta 80 não é compatível com o gateway de entrada da Apigee. Se você estiver migrando do Anthos Service Mesh para o gateway de entrada da Apigee e tiver seguido as instruções na postagem da comunidade para ativar a porta 80, ela não funcionará com o gateway de entrada da Apigee.