Etapa 1: expor o gateway de entrada da Apigee

Nesta etapa, explicamos como configurar o serviço do Kubernetes para o gateway de entrada da Apigee. O serviço Kubernetes é necessário para cada implantação de entrada conseguir um endereço IP que possa ser exposto. As chamadas do cliente para proxies invocarão um nome de host que será resolvido para esse endereço IP.

Opções dos serviços do Kubernetes para seu gateway de entrada da Apigee

Há duas opções para fornecer um serviço do Kubernetes para atribuir o endereço IP ...

Criar seu próprio serviço do Kubernetes

Para ambientes de produção, a Apigee recomenda criar um serviço personalizado do Kubernetes para cada gateway de entrada.

  • A Apigee exclui o serviço padrão, mas não exclui o serviço personalizado do Kubernetes após a limpeza. Portanto, o endereço IP não será liberado após a reinstalação do Apigee híbrido.
  • Para plataformas que não estão no Google Cloud, como EKS, AKS e OpenShift, é necessário personalizar o serviço do Kubernetes para trabalhar com o provedor de nuvem. Portanto, é melhor criar um serviço personalizado do Kubernetes do que usar o serviço padrão, porque o Apigee não oferece suporte a todas as personalizações do serviço padrão do Kubernetes.

Siga as etapas abaixo para configurar e rotear o tráfego para o novo gateway de entrada.

  1. Crie um serviço do Kubernetes com os rótulos de seletor de pods necessários, app, ingress_name e org. Esses rótulos já estão presentes nos pods de gateway de entrada da Apigee.

    Crie um arquivo de serviço usando o seguinte modelo:

    apiVersion: v1
    kind: Service
    metadata:
      name: SERVICE_NAME
      namespace: apigee
    spec:
      ports:
      - name: status-port
        port: 15021
        protocol: TCP
        targetPort: 15021
      - name: https
        port: 443
        protocol: TCP
        targetPort: 8443
      selector:
        app: apigee-ingressgateway #required
        ingress_name: INGRESS_NAME
        org: ORG_NAME
      type: LoadBalancer
      loadBalancerIP: LOAD_BALANCER_IP
    • SERVICE_NAME é um nome usado para identificar esse serviço. Por exemplo, apigee-prod-1.
    • INGRESS_NAME é o nome do gateway de entrada da Apigee. Ele precisa corresponder ao nome fornecido para ingressGateways.name no arquivo overrides.yaml. Para mais informações, consulte ingressGateways na referência da propriedade de configuração.
    • ORG_NAME é o nome da organização da Apigee. Ele precisa corresponder ao nome fornecido para org no arquivo overrides.yaml. Para mais informações, consulte org na referência da propriedade de configuração.
    • LOAD_BALANCER_IP é o endereço IP do balanceador de carga.

      Se você tiver um endereço IP reservado para o balanceador de carga, insira-o.

      Se você ainda não tiver um endereço IP reservado, use o retornado pelo serviço de entrada padrão da Apigee. Use o EXTERNAL-IP retornado pelo seguinte comando:

      kubectl get svc -n apigee -l app=apigee-ingressgateway

    O gateway de entrada da Apigee expõe as seguintes portas:

    Porta Descrição
    443 Tráfego do ambiente de execução.
    15021 Verificação de integridade status-port expõe um endpoint /healthz/ready que pode ser usado com as verificações de integridade de entrada do GKE.
  2. Crie o serviço aplicando SERVICE_FILENAME.yaml:
    kubectl apply -f SERVICE_FILENAME.yaml
  3. Encontre o IP externo do gateway de entrada da Apigee com o seguinte comando::
    kubectl get svc -n apigee SERVICE_NAME

    A resposta será semelhante a esta:

    NAME                                        TYPE           CLUSTER-IP    EXTERNAL-IP     PORT(S)                                      AGE
    apigee-ingressgateway-prod-hybrid-37a39bd   LoadBalancer   192.0.2.123   233.252.0.123   15021:32049/TCP,80:31624/TCP,443:30723/TCP   16h
  4. Desative o balanceador de carga para o serviço de gateway de entrada padrão da Apigee:
    1. Atualize a propriedade ingressGateways[].svcType para ClusterIP no arquivo de substituição:
      ingressGateways:
        svcType: ClusterIP
    2. Faça upgrade do gráfico apigee-org para aplicar as mudanças:
      helm upgrade ORG_NAME apigee-org/ \
        --install \
        --namespace apigee \
        --atomic \
        -f overrides.yaml
      

    Consulte Desativar o balanceador de carga para o serviço de gateway de entrada padrão da Apigee para mais informações.

  5. Teste o gateway fazendo uma chamada de verificação de integridade.

    curl -H 'User-Agent: GoogleHC' https://DOMAIN/healthz/ingress -k \
      --resolve "DOMAIN:443:INGRESS_IP_ADDRESS"

    Onde

    Se o comando estiver correto, ele retornará:

    Apigee Ingress is healthy
  6. Use esse endereço IP para atualizar o registro DNS (geralmente um registro A ou CNAME) no seu registrador ou provedor de DNS.

Usar o serviço padrão do Kubernetes

Para ambientes que não estão em produção ou para testar o tráfego inicial pelo gateway de entrada da Apigee, a Apigee híbrida oferece serviço padrão do Kubernetes para cada implantação de entrada.

É possível fazer alterações limitadas de configuração no serviço padrão no arquivo overrides.yaml. Para ver as opções de configuração disponíveis, consulte Como gerenciar o gateway de entrada da Apigee. Por exemplo, é possível adicionar anotações.

Para ambientes de produção, recomendamos fornecer um serviço do Kubernetes para entrada. Siga as etapas em Fornecer seu próprio serviço do Kubernetes.

  1. Encontre o IP externo do serviço de entrada padrão da Apigee com o seguinte comando:
    kubectl get svc -n apigee -l app=apigee-ingressgateway

    A saída será semelhante a esta:

    NAME                                        TYPE           CLUSTER-IP    EXTERNAL-IP     PORT(S)                                      AGE
    apigee-ingressgateway-prod-hybrid-37a39bd   LoadBalancer   192.0.2.123   233.252.0.123   15021:32049/TCP,80:31624/TCP,443:30723/TCP   16h
  2. Teste o gateway fazendo uma chamada de verificação de integridade.

    curl -H 'User-Agent: GoogleHC' https://DOMAIN/healthz/ingress -k \
      --resolve "DOMAIN:443:INGRESS_IP_ADDRESS"

    Onde

    Se o comando estiver correto, ele retornará:

    Apigee Ingress is healthy
  3. Use esse endereço IP para atualizar o registro DNS (geralmente um registro A ou CNAME) no seu registrador ou provedor de DNS.

Próxima etapa

1 (PRÓXIMA) Etapa 2: implantar um proxy