Questo passaggio spiega come configurare il servizio Kubernetes per il gateway Apigee in entrata. I servizi Kubernetes sono necessari per ogni deployment in entrata per ottenere un indirizzo IP che può essere esposto. 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 un servizio Kubernetes personalizzato per ogni gateway Apigee in entrata (consigliato).
- 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 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 del servizio 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.
- Crea un servizio Kubernetes con le etichette del selettore di pod richieste,
app
,ingress_name
eorg
. Queste etichette sono già presenti nei pod del gateway in entrata Apigee. Crea un file di servizio utilizzando il seguente esempio: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 gateway in entrata Apigee. Deve corrispondere al nome
che hai fornito per
ingressGateways.name
nel fileoverrides.yaml
. della ulteriori informazioni vediingressGateways
nel Informazioni sulle proprietà di configurazione. - ORG_NAME è il nome dell'organizzazione Apigee. Deve corrispondere al nome
che hai fornito per
org
nel fileoverrides.yaml
. della ulteriori informazioni vediorg
nel Informazioni sulle proprietà di configurazione. - LOAD_BALANCER_IP è l'indirizzo IP del bilanciatore del carico.
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. - 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 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
-
Disabilita il bilanciatore del carico per il servizio gateway in entrata Apigee predefinito:
- Aggiorna il
ingressGateways[].svcType
. aClusterIP
nel file di override:ingressGateways: svcType: ClusterIP
-
Applica le modifiche con
apigeectl apply --org
.${APIGEECTL_HOME}/apigeectl apply -f ${HYBRID_FILES}/overrides/overrides.yaml
- Aggiorna il
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 creato in Configurazione di progetto e organizzazione - Passaggio 3. Crea gruppo di ambienti.
- INGRESS_IP_ADDRESS è l'indirizzo IP in entrata, ad esempio
233.252.0.123
.
Se l'operazione riesce, il comando restituisce:
Apigee Ingress is healthy
- Usa questo indirizzo IP per aggiornare il record DNS (di solito un record
A
oCNAME
) 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.
- 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
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 creato in Configurazione di progetto e organizzazione - Passaggio 3. Crea gruppo di ambienti.
- INGRESS_IP_ADDRESS è l'indirizzo IP in entrata, ad esempio
233.252.0.123
.
Se l'operazione riesce, il comando restituisce:
Apigee Ingress is healthy
- Usa questo indirizzo IP per aggiornare il record DNS (di solito un record
A
oCNAME
) presso il registrar o il provider DNS.