title: Get APISIX and APISIX Ingress Controller keywords:
import Tabs from ‘@theme/Tabs’; import TabItem from ‘@theme/TabItem’;
APISIX Ingress Controller is a Kubernetes ingress controller using Apache APISIX as the high performance reverse proxy.
APISIX Ingress Controller can be configured using the native Kubernetes Ingress or Gateway API, as well as with APISIX’s own declarative and easy-to-use custom resources. The controller translates these resources into APISIX configuration.
This tutorial series walks you through how to quickly get started with APISIX on a kind Kubernetes cluster and use the APISIX Ingress Controller to manage resources.
In this section, you will be creating a kind cluster and configuring the namespace. Skip to the next section if you already have an existing cluster and a corresponding namspace.
Ensure you have Docker running and start a kind cluster:
kind create cluster
Create a new namespace ingress-apisix:
kubectl create namespace ingress-apisix
Set the namespace to ingress-apisix to avoid specifying it explicitly in each subsequent command:
kubectl config set-context --current --namespace=ingress-apisix
Install the Gateway API CRDs, APISIX Standalone API-driven mode, and APISIX Ingress Controller:
helm repo add apisix https://charts.apiseven.com helm repo update helm install apisix \ --namespace ingress-apisix \ --create-namespace \ --set apisix.deployment.role=traditional \ --set apisix.deployment.role_traditional.config_provider=yaml \ --set etcd.enabled=false \ --set ingress-controller.enabled=true \ --set ingress-controller.config.provider.type=apisix-standalone \ --set ingress-controller.apisix.adminService.namespace=ingress-apisix \ --set ingress-controller.gatewayProxy.createDefault=true \ apisix/apisix
More details on the installation can be found in the Installation Guide.
Check the statuses of resources in the current namespace:
kubectl get all
You should wait for all pods to be running before proceeding:
NAME READY STATUS RESTARTS AGE pod/apisix-7c5fb8d546-gtfqn 1/1 Running 0 113s pod/apisix-ingress-controller-56c46fd54f-f8fxt 1/1 Running 0 113s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/apisix-admin ClusterIP 10.96.174.119 <none> 9180/TCP 113s service/apisix-gateway NodePort 10.96.231.33 <none> 80:31321/TCP 113s service/apisix-metrics-service ClusterIP 10.96.77.248 <none> 8443/TCP 113s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/apisix 1/1 1 1 113s deployment.apps/apisix-ingress-controller 1/1 1 1 113s NAME DESIRED CURRENT READY AGE replicaset.apps/apisix-7c5fb8d546 1 1 1 113s replicaset.apps/apisix-ingress-controller-56c46fd54f 1 1 1 113s
To verify the installed APISIX version, map port 80 of the apisix-gateway service to port 8080 on the local machine:
kubectl port-forward svc/apisix-gateway 9080:80 &
Send a request to the gateway:
curl -sI "http://127.0.0.1:9080" | grep Server
If everything is ok, you should see the APISIX version:
Server: APISIX/x.x.x