Passaggio 9: esponi il gateway in entrata Apigee

Questo passaggio spiega come configurare il servizio Kubernetes per il gateway Apigee in entrata. Il servizio Kubernetes è necessario per ogni deployment in entrata in modo da ottenere un indirizzo IP che possa essere esposte. Le chiamate client ai proxy richiamano un nome host che verrà risolto in questo indirizzo IP.

Opzioni per i servizi Kubernetes per il gateway Apigee in entrata

Esistono due opzioni per fornire un servizio Kubernetes al fine di assegnare l'indirizzo IP ...

crea il tuo servizio Kubernetes

Per gli ambienti di produzione, Apigee consiglia di creare un servizio Kubernetes personalizzato per ogni traffico in entrata gateway VPN ad alta disponibilità.

  • Apigee elimina il servizio predefinito, ma non elimina il servizio Kubernetes personalizzato al momento della pulizia. Pertanto, l'indirizzo IP non verrà rilasciato dopo la reinstallazione di Apigee hybrid.
  • Per le piattaforme non su Google Cloud, come EKS, AKS e OpenShift, devi personalizzare servizio Kubernetes per l'uso con il cloud provider. Per questo motivo è preferibile creare un'immagine Kubernetes rispetto all'uso di quello predefinito, poiché Apigee non supporta tutte le personalizzazioni il servizio Kubernetes predefinito.

Segui questi passaggi per configurare e instradare il traffico al nuovo gateway in entrata.

  1. Crea un servizio Kubernetes con le etichette del selettore di pod richieste, app, ingress_name e org. Queste etichette sono già presenti nei pod del gateway in entrata Apigee.

    Crea un file di servizio utilizzando il seguente modello:

    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 è un nome utilizzato per identificare questo servizio. Ad esempio: apigee-prod-1.
    • INGRESS_NAME è il nome di questo gateway in entrata Apigee. Deve corrispondere al nome che hai fornito per ingressGateways.name nel file overrides.yaml. Per ulteriori informazioni vedi ingressGateways nel Riferimento alle proprietà di configurazione.
    • ORG_NAME è il nome dell'organizzazione Apigee. Deve corrispondere al nome che hai fornito per org nel file overrides.yaml. Per ulteriori informazioni vedi org nel Riferimento alle proprietà di configurazione.
    • LOAD_BALANCER_IP è l'indirizzo IP del bilanciatore del carico.

      Se hai un indirizzo IP riservato per il bilanciatore del carico, inseriscilo.

      Se non hai un indirizzo IP già riservato, puoi utilizzare quello restituito dal il servizio in entrata predefinito di Apigee. Utilizza EXTERNAL-IP restituito da quanto segue :

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

    Il gateway in entrata Apigee espone le seguenti porte:

    Porta Descrizione
    443 Traffico di runtime.
    15.021 Controllo di integrità. status-port espone un endpoint /healthz/ready che possono essere utilizzate con i controlli di integrità di GKE Ingress.
  2. Crea il servizio applicando SERVICE_FILENAME.yaml:
    kubectl apply -f SERVICE_FILENAME.yaml
  3. Trova l'IP esterno del gateway in entrata Apigee con il seguente comando:
    kubectl get svc -n apigee SERVICE_NAME

    L'output dovrebbe essere simile al seguente:

    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. Disabilita il bilanciatore del carico per il servizio gateway in entrata Apigee predefinito:
    1. Aggiorna il ingressGateways[].svcType. a ClusterIP nel file di override:
      ingressGateways:
        svcType: ClusterIP
    2. Applica le modifiche con apigeectl apply --org.
      ${APIGEECTL_HOME}/apigeectl apply -f ${HYBRID_FILES}/overrides/overrides.yaml

    Consulta Disabilita il bilanciatore del carico per l'impostazione predefinita Per saperne di più, consulta il servizio gateway in entrata Apigee.

  5. Testa il gateway in entrata effettuando una chiamata di controllo di integrità.

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

    Dove

    Se l'operazione riesce, il comando restituisce:

    Apigee Ingress is healthy
  6. Usa questo indirizzo IP per aggiornare il record DNS (di solito un record A o CNAME) presso il registrar o il provider DNS.

Utilizza il servizio Kubernetes predefinito

Per ambienti non di produzione o per testare il traffico iniziale attraverso il gateway in entrata Apigee, Apigee hybrid fornisce un servizio Kubernetes predefinito per ogni deployment in entrata.

Puoi apportare modifiche limitate alla configurazione del servizio predefinito in overrides.yaml . Per le opzioni di configurazione disponibili, vedi Gestione Gateway in entrata Apigee. Ad esempio, puoi aggiungere annotazioni.

Per gli ambienti di produzione, ti consigliamo di fornire un servizio Kubernetes per il traffico in entrata. Segui i passaggi descritti in Creare il tuo servizio Kubernetes.

  1. Trova l'IP esterno del servizio Apigee in entrata predefinito con il seguente comando:
    kubectl get svc -n apigee -l app=apigee-ingressgateway

    L'output dovrebbe essere simile al seguente:

    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. Testa il gateway in entrata effettuando una chiamata di controllo di integrità.

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

    Dove

    Se l'operazione riesce, il comando restituisce:

    Apigee Ingress is healthy
  3. Usa questo indirizzo IP per aggiornare il record DNS (di solito un record A o CNAME) presso il registrar o il provider DNS.
1 2 3 4 5 6 7 8 9 (SUCCESSIVO) Passaggio 10: deployment di un proxy