Skip to main content
Version: 0.5.0

Install Ingress APISIX on ACK

This document explains how to install Ingress APISIX on ali-cloud ACK.

Prerequisites#

  • Create an ACK Service on ali-cloud.
  • Download the kube config for your ACK, follow the introduction.
  • Install Helm.
  • Clone Apache APISIX Charts.
  • Make sure your target namespace exists, kubectl operations thorough this document will be executed in namespace ingress-apisix.

Install 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 allow.ipList="{0.0.0.0/0}" \
--set etcd.persistence.storageClass="alicloud-disk-ssd" \
--set etcd.persistence.size="20Gi" \
--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 (See Access services through SLB for more details), so that clients can access Apache APISIX through a load balancer. 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 ACK, so that the apisix-ingress-controller instances can access the APISIX instances (resources pushing).

ACK PV require min_size is 20Gi,cluster with flexVolume component select alicloud-disk-ssd,if with helm values.yml configure startup apisix,more helm etcd configure,configure format sample:

etcd:
persistence:
storageClass: "alicloud-disk-ssd"
size: 20Gi

Install apisix-ingress-controller#

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.

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.