Questo passaggio spiega come configurare il servizio Kubernetes per il gateway di ingresso Apigee. Il servizio Kubernetes è necessario per ogni deployment di ingress per ottenere un indirizzo IP che può essere exposto. Le chiamate client ai proxy attiveranno un nome host che verrà risolto in questo indirizzo IP.
Opzioni per i servizi Kubernetes per il gateway di ingresso Apigee
Esistono due opzioni per fornire un servizio Kubernetes per assegnare l'indirizzo IP…
- Crea un servizio Kubernetes personalizzato per ogni gateway di ingresso Apigee (opzione consigliata).
- Utilizza il servizio Kubernetes predefinito.
Crea il tuo servizio Kubernetes
Per gli ambienti di produzione, Apigee consiglia di creare un servizio Kubernetes personalizzato per ogni gateway di ingresso.
- Apigee elimina il servizio predefinito, ma non il servizio Kubernetes personalizzato al termine della pulizia. Di conseguenza, l'indirizzo IP non verrà rilasciato al termine della reinstallazione di Apigee hybrid.
- Per le piattaforme non su Google Cloud, come EKS, AKS e OpenShift, devi personalizzare il servizio Kubernetes in modo che funzioni con il provider cloud. Pertanto, è meglio creare un servizio Kubernetes personalizzato anziché utilizzare quello predefinito, perché Apigee non supporta tutte le personalizzazioni del servizio Kubernetes predefinito.
Per configurare e instradare il traffico al nuovo gateway di ingresso, segui questi passaggi.
- Crea un servizio Kubernetes con le etichette del selettore dei pod richieste,
app
,ingress_name
eorg
. Queste etichette sono già presenti nei pod del gateway di ingresso Apigee.Crea un file di servizio utilizzando il seguente modello:
apiVersion: v1 kind: Service metadata: name: SERVICE_NAME namespace: APIGEE_NAMESPACE 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 di ingresso Apigee. Deve corrispondere al nome fornito per
ingressGateways.name
nel fileoverrides.yaml
. Per maggiori informazioni, consultaingressGateways
nel riferimento alle proprietà di configurazione. - ORG_NAME è il nome dell'organizzazione Apigee. Deve corrispondere al nome fornito per
org
nel fileoverrides.yaml
. Per maggiori informazioni, consultaorg
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 già un indirizzo IP prenotato, puoi utilizzare quello restituito dal servizio di importazione Apigee predefinito. Utilizza il valore
EXTERNAL-IP
restituito dal seguente comando:kubectl get svc -n APIGEE_NAMESPACE -l app=apigee-ingressgateway
Il gateway di ingresso Apigee espone le seguenti porte:
Porta Descrizione 443 Traffico di runtime. 15021 Controllo di integrità. status-port
espone un endpoint/healthz/ready
che può essere utilizzato con i controlli di integrità di GKE Ingress. - SERVICE_NAME è un nome utilizzato per identificare questo servizio. Ad esempio,
- Crea il servizio applicando
SERVICE_FILENAME.yaml
:kubectl apply -f SERVICE_FILENAME.yaml
- Trova l'IP esterno del gateway di ingresso Apigee con il seguente comando:
kubectl get svc -n APIGEE_NAMESPACE SERVICE_NAME
L'output dovrebbe avere il seguente aspetto:
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
-
Disattiva il bilanciatore del carico per il servizio gateway di ingresso Apigee predefinito:
- Aggiorna la proprietà
ingressGateways[].svcType
inClusterIP
nel file delle sostituzioni:ingressGateways: svcType: ClusterIP
-
Esegui l'upgrade del grafico
apigee-org
per applicare le modifiche:helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace apigee \ --atomic \ -f overrides.yaml
Per ulteriori informazioni, consulta Disattivare il bilanciamento del carico per il servizio gateway di ingresso Apigee predefinito.
- Aggiorna la proprietà
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
- DOMAIN è il dominio che hai fornito come nome host per il gruppo di ambienti che hai creato in Configurazione del progetto e dell'organizzazione - Passaggio 3: crea un gruppo di ambienti.
- INGRESS_IP_ADDRESS è l'indirizzo IP di ingresso, ad esempio
233.252.0.123
.
In caso di esito positivo, il comando restituisce:
Apigee Ingress is healthy
- Utilizza questo indirizzo IP per aggiornare il record DNS (di solito un record
A
oCNAME
) presso il tuo registrar o provider DNS.
Utilizzare il servizio Kubernetes predefinito
Per gli ambienti non di produzione o per testare il traffico iniziale tramite il gateway di ingresso Apigee, Apigee hybrid fornisce il servizio Kubernetes predefinito per ogni implementazione di ingresso.
Puoi apportare modifiche di configurazione limitate al servizio predefinito nel file overrides.yaml
. Per le opzioni di configurazione disponibili, consulta Gestire
Apigee Ingress Gateway. Ad esempio, puoi aggiungere annotazioni.
Per gli ambienti di produzione, ti consigliamo di fornire un servizio Kubernetes per l'ingresso. Segui i passaggi descritti in Creare il tuo servizio Kubernetes.
- Trova l'indirizzo IP esterno del servizio di ingresso Apigee predefinito con il seguente comando:
kubectl get svc -n APIGEE_NAMESPACE -l app=apigee-ingressgateway
L'output dovrebbe avere il seguente aspetto:
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
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
- DOMAIN è il dominio che hai fornito come nome host per il gruppo di ambienti che hai creato in Configurazione del progetto e dell'organizzazione - Passaggio 3: crea un gruppo di ambienti.
- INGRESS_IP_ADDRESS è l'indirizzo IP di ingresso, ad esempio
233.252.0.123
.
In caso di esito positivo, il comando restituisce:
Apigee Ingress is healthy
- Utilizza questo indirizzo IP per aggiornare il record DNS (di solito un record
A
oCNAME
) presso il tuo registrar o provider DNS.