Deploy API7 Ingress Controller on Kubernetes
This tutorial will show you how to deploy API7 Gateway and Ingress Controller on Kubernetes. API7 Ingress Controller allows you to configure API7 Gateway declaratively in Kubernetes. See API7 Ingress Controller Architecture to learn more.
If you do not wish to work with Kubernetes and API7 Ingress Controller, you may skip this tutorial and start with Launch Your First API.
Prerequisites
- Install API7 Enterprise.
- Have a running Kubernetes cluster.
- Have kubectl installed.
Configure DP Manager and Admin API Addresses
Navigate to the Dashboard:
- Select Organization from the top navigation bar, then choose Settings.
- Select Gateway Settings from the left navigation bar, then choose the Deployment tab.
- Update the DP Manager address (
:7943
) and Admin API address (:7443
) with HTTPS URLs.
Create and Set Namespace
You can optionally create a new namespace for the resources and set it as the preferred namespace, so that you do not need to explicitly specify the namespace in every command.
Create a new namespace api7
and set it as the preferred namespace:
kubectl create namespace api7 && \
kubectl config set-context --current --namespace=api7
To verify if the default namespace is modified:
kubectl config view --minify | grep namespace:
You should see the namespace has been set:
namespace: api7
Add a New Gateway Group
Navigate to the Dashboard:
- Select Gateway Groups from the side navigation bar and then click Add Gateway Group.
- Select Ingress Controller as Type.
- Enter
api7-ingress
in the Name field. - Click Add.
The gateway group should be created and you are prompted to install ingress controller and deploy the GatewayProxy configuration in the Deployment Steps panel.
Install Ingress Controller
Copy the deployment script on the Dashboard and run it in the terminal. If deployed successfully, you should see a response similar to the following:
NAME: api7-ingress
LAST DEPLOYED: Tue Jul 29 10:17:51 2025
NAMESPACE: api7
STATUS: deployed
REVISION: 1
TEST SUITE: None
Deploy the GatewayProxy Configuration
- Enter
api7
in the Namespace field. - Enter
apisix
in the Name field. - Click Generate Script.
- Choose between Gateway API and Ingress scripts.
- Select the Gateway API tab if you will be working with Gateway API.
- Select the Ingress tab if you will be working with Ingress or APISIX CRD.
- Copy the generated script and run it in the terminal.
Install Gateway Instance
Navigate to the Dashboard:
- Select Gateway Instances from the side navigation bar and then click Add Gateway Instance.
- Switch to the Kubernetes tab.
- Fill out the namespace and other parameters, and click Generate to see the deployment script.
- Run the deployment script in the terminal.
When installing API7 Enterprise, a gateway instance could be initialized in the gateway group default
. To avoid port conflicts, you can modify the listening ports of the new gateway instance, or remove the unused instance in the default
gateway group.
Verify
Check the pod status:
kubectl get pods
You should see all pods in the Running
status:
NAME READY STATUS RESTARTS AGE
api7-ee-3-gateway-698f85d98b-jxrwp 1/1 Running 0 6m
api7-ingress-774578b557-lw2wk 1/1 Running 0 10m
Navigate back to the Dashboard and select Gateway Instances, you should see a gateway instance in healthy
status.
Note that resources created with API7 Ingress Controller, such as services and routes, will be read-only in the Dashboard.
Next Steps
- Learn how to create a gateway instance in the gateway group.
- Follow the getting started tutorials to learn more about using API7 Ingress Controller in API7 Enterprise.