This document explains how to install Ingress APISIX on Azure AKS.
az aks get-credentials
.ingress-apisix
.Apache APISIX as the proxy plane of apisix-ingress-controller, should be deployed in advance.
cd /path/to/apisix-helm-chart helm repo add bitnami https://charts.bitnami.com/bitnami helm repo add apisix https://charts.apiseven.com # Use `helm search repo apisix` to search charts about apisix helm repo update helm install apisix apisix/apisix \ --set gateway.type=LoadBalancer \ --set admin.allow.ipList="{0.0.0.0/0}" \ --namespace ingress-apisix kubectl get service --namespace ingress-apisix
Two Service resources were created, one is apisix-gateway
, which processes the real traffic; another is apisix-admin
, which acts as the control plane to process all the configuration changes.
The gateway service type is set to LoadBalancer
, so that clients can access Apache APISIX through a load balancer IP. You can find the load balancer IP by running:
kubectl get service apisix-gateway --namespace ingress-apisix -o jsonpath='{.status.loadBalancer.ingress[].ip}'
Another thing should be concerned that the allow.ipList
field should be customized according to the Pod CIRD configuration of AKS, so that the apisix-ingress-controller instances can access the APISIX instances (resources pushing).
You can also install apisix-ingress-controller by Helm Charts, it's recommended to install it in the same namespace with Apache APISIX.
cd /path/to/apisix-helm-chart # install apisix-ingress-controller helm install apisix-ingress-controller apisix/apisix-ingress-controller \ --set image.tag=dev \ --set config.apisix.baseURL=http://apisix-admin:9180/apisix/admin \ --set config.apisix.adminKey=edd1c9f034335f136f87ad84b625c8f1 \ --namespace ingress-apisix
Change the image.tag
to the apisix-ingress-controller version that you desire. You have to wait for while until the corresponding pods are running.
Now try to create some resources to verify the running status. As a minimalist example, see proxy-the-httpbin-service to learn how to apply resources to drive the apisix-ingress-controller.