Passo 1: exponha o gateway de entrada do Apigee

Este passo explica como configurar o serviço Kubernetes para o gateway de entrada do Apigee. O serviço Kubernetes é necessário para cada implementação de entrada para obter um endereço IP que possa ser exposto. As chamadas de cliente para proxies invocam um nome do anfitrião que é resolvido para este endereço IP.

Opções para serviços Kubernetes para o gateway de entrada do Apigee

Existem duas opções para fornecer um serviço Kubernetes para atribuir o endereço IP…

Crie o seu próprio serviço Kubernetes

Para ambientes de produção, o Apigee recomenda que crie um serviço Kubernetes personalizado para cada gateway de entrada.

  • O Apigee elimina o serviço predefinido, mas não elimina o serviço kubernetes personalizado após a limpeza. Por conseguinte, o endereço IP não é libertado após a reinstalação do Apigee hybrid.
  • Para plataformas que não estão no Google Cloud, como o EKS, o AKS e o OpenShift, tem de personalizar o serviço Kubernetes para funcionar com o fornecedor de nuvem. Por conseguinte, é melhor criar um serviço Kubernetes personalizado do que usar o serviço predefinido, porque o Apigee não suporta todas as personalizações do serviço Kubernetes predefinido.

Siga estes passos para configurar e encaminhar tráfego para o novo gateway de entrada.

  1. Crie um serviço do Kubernetes com as etiquetas de seletor de pods necessárias, app, ingress_name e org. Estas etiquetas já estão presentes nos pods do gateway de entrada do Apigee.

    Crie um ficheiro de serviço com 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 este serviço. Por exemplo, apigee-prod-1.
    • INGRESS_NAME é o nome desta gateway de entrada do Apigee. Tem de corresponder ao nome que indicou para ingressGateways.name no seu ficheiro overrides.yaml. Para mais informações, consulte ingressGateways na referência de propriedades de configuração.
    • ORG_NAME é o nome da organização da Apigee. Tem de corresponder ao nome que indicou para org no seu ficheiro overrides.yaml. Para mais informações, consulte org na referência de propriedades de configuração.
    • LOAD_BALANCER_IP é o endereço IP do balanceador de carga.

      Se tiver um endereço IP reservado para o seu equilibrador de carga, introduza-o.

      Se ainda não tiver um endereço IP reservado, pode usar o endereço IP devolvido pelo serviço de entrada do Apigee predefinido. Use o EXTERNAL-IP devolvido pelo seguinte comando:

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

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

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

    O resultado deve ter um aspeto semelhante ao seguinte:

    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 do Apigee predefinido:
    1. Atualize a propriedade ingressGateways[].svcType para ClusterIP no ficheiro de substituições:
      ingressGateways:
        svcType: ClusterIP
    2. Atualize o gráfico apigee-org para aplicar as alterações:
      helm upgrade ORG_NAME apigee-org/ \
        --install \
        --namespace apigee \
        --atomic \
        -f overrides.yaml
      

    Consulte o artigo Desative o balanceador de carga para o serviço de gateway de entrada do Apigee predefinido para mais informações.

  5. Teste a gateway de entrada fazendo uma chamada de verificação de funcionamento.

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

    Onde

    Em caso de êxito, o comando devolve:

    Apigee Ingress is healthy
  6. Use este endereço IP para atualizar o seu registo DNS (normalmente, um registo A ou CNAME) no seu registador ou fornecedor de DNS.

Use o serviço Kubernetes predefinido

Para ambientes de não produção ou para testar o tráfego inicial através do gateway de entrada do Apigee, o Apigee hybrid fornece um serviço Kubernetes predefinido para cada implementação de entrada.

Pode fazer alterações de configuração limitadas ao serviço predefinido no ficheiro overrides.yaml. Para ver as opções de configuração disponíveis, consulte o artigo Gerir o gateway de entrada do Apigee. Por exemplo, pode adicionar anotações.

Para ambientes de produção, recomendamos que forneça um serviço Kubernetes para entrada. Siga os passos em Crie o seu próprio serviço Kubernetes.

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

    O resultado deve ter um aspeto semelhante ao seguinte:

    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 a gateway de entrada fazendo uma chamada de verificação de funcionamento.

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

    Onde

    Em caso de êxito, o comando devolve:

    Apigee Ingress is healthy
  3. Use este endereço IP para atualizar o seu registo DNS (normalmente, um registo A ou CNAME) no seu registador ou fornecedor de DNS.

Passo seguinte

1 (NEXT) Passo 2: implemente um proxy