Step 1: Expose Apigee ingress gateway Stay organized with collections Save and categorize content based on your preferences.
This step explains how to set up the Kubernetes service for your Apigee ingress gateway. The Kubernetes service is needed for each ingress deployment to obtain an IP address that can be exposed. Client calls to proxies will invoke a hostname that will resolve to this IP address.
Options for Kubernetes services for your Apigee ingress gateway
There are two options for providing a kubernetes service to assign the IP address ...
- Create acustom Kubernetes service for each Apigee ingress gateway (recommended).
- Use thedefault Kubernetes service.
Create your own Kubernetes service
For production environments, Apigee recommends you create a custom Kubernetes service for each ingress gateway.
- Apigee deletes default service, but does not delete the custom kubernetes service upon cleanup. Hence, the IP address won't be released upon reinstallation of Apigee hybrid.
- For platforms not on Google Cloud, like EKS, AKS, and OpenShift, you need to customize the Kubernetes service to work with the cloud provider. Therefore it is better to create a custom Kubernetes service than to use the default service, because apigee does not support all customizations to the default Kubernetes service.
Use the following steps to set up and route traffic to the new ingress gateway.
- Create a Kubernetes service with the required pod selector labels,
app,ingress_name, andorg. These labels are already present in Apigee ingress gateway pods.Create a service file using the following template:
apiVersion: v1kind: Servicemetadata: name:SERVICE_NAME namespace: apigeespec: 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 is a name used to identify this service. For example,
apigee-prod-1.Note: To more easily identify your services, use the ingress name as part of the service name. - INGRESS_NAME is the name of this Apigee ingress gateway. It must match the name you provided for
ingressGateways.namein youroverrides.yamlfile. For more information seeingressGatewaysin the Configuration properties reference. - ORG_NAME is the name of the Apigee organization. It must match the name you provided for
orgin youroverrides.yamlfile. For more information seeorgin the Configuration properties reference. - LOAD_BALANCER_IP is the IP address for the load balancer.
If you have an IP address reserved for your load balancer, enter that.
If you do not have an IP address already reserved, you can use the one returned by the default Apigee ingress service. Use the
EXTERNAL-IPreturned by the following command: Caution: Because of alimitation on Google Cloud internal Application Load Balancer, this Apigee routing option does not support HTTP 1.0 requests. Incoming client requests that specify the HTTP 1.0 protocol will fail. Later HTTP versions are supported.kubectl get svc -n apigee -l app=apigee-ingressgateway
Apigee ingress gateway exposes the following ports:
Port Description 443 Runtime traffic. 15021 Health check. status-portexposes a/healthz/readyendpoint that can be used with GKE Ingress health checks. - SERVICE_NAME is a name used to identify this service. For example,
- Create the service by applying the
SERVICE_FILENAME.yaml:kubectl apply -fSERVICE_FILENAME.yaml
- Find the external IP of Apigee ingress gateway with the following command:
kubectl get svc -n apigeeSERVICE_NAME
Your output should look something like:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEapigee-ingressgateway-prod-hybrid-37a39bd LoadBalancer 192.0.2.123233.252.0.123 15021:32049/TCP,80:31624/TCP,443:30723/TCP 16h
- Disable the loadbalancer for the default Apigee ingress gateway service:
- Update the
ingressGateways[].svcTypeproperty toClusterIPin your overrides file:ingressGateways: svcType: ClusterIP
- Upgrade the
apigee-orgchart to apply the changes:helm upgradeORG_NAME apigee-org/ \ --install \ --namespace apigee \ --atomic \ -foverrides.yaml
SeeDisable the loadbalancer for the default Apigee ingress gateway service for more information.
- Update the
Test the ingress gateway by making a healthcheck call.
curl -H 'User-Agent: GoogleHC' https://DOMAIN/healthz/ingress -k \ --resolve "DOMAIN:443:INGRESS_IP_ADDRESS"
Where
- DOMAIN is the domain you provided as the hostname for the environment group you created inProject and org setup - Step 3: Create an environment group.
- INGRESS_IP_ADDRESS is the ingress IP address, for example
233.252.0.123.
On success the command returns:
Apigee Ingress is healthy
- Use this IP address to update your DNS record (usually an
AorCNAMErecord) at your registrar or DNS provider.
Use the default Kubernetes service
For non-production environments or to test initial traffic through the Apigee ingress gateway, Apigee hybrid provides default Kubernetes service for each ingress deployment.
You can make limited configuration changes to the default service in your For production environments, it is recommended you provide a Kubernetes service for ingress. Follow the steps inCreate your own Kubernetes service. Your output should look something like: Test the ingress gateway by making a healthcheck call. Where On success the command returns: You've successfully set up the Apigee ingress gateway. Now it's time to download a proxy and test your ingress gateway.overrides.yaml file. For the available configuration options, seeManaging Apigee ingress gateway. For example, you can add annotations.Note: This service will be deleted when the ingress deployment is deleted (when the ingress gateway is removed from the overrides file).
Congratulations!kubectl get svc -n apigee -l app=apigee-ingressgateway
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEapigee-ingressgateway-prod-hybrid-37a39bd LoadBalancer 192.0.2.123233.252.0.123 15021:32049/TCP,80:31624/TCP,443:30723/TCP 16h
curl -H 'User-Agent: GoogleHC' https://DOMAIN/healthz/ingress -k \ --resolve "DOMAIN:443:INGRESS_IP_ADDRESS"
233.252.0.123.Apigee Ingress is healthy
A orCNAME record) at your registrar or DNS provider.Next step
1(NEXT) Step 2: Deploy a proxy
Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2026-02-05 UTC.