Skip to main content
Version: 1.0.0

Install Ingress APISIX on KubeSphere

This document explains how to install Ingress APISIX on KubeSphere.

KubeSphere is a distributed operating system managing cloud native applications with Kubernetes as its kernel, and provides plug-and-play architecture for the seamless integration of third-party applications to boost its ecosystem.


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
helm repo add apisix
# Use `helm search repo apisix` to search charts about apisix
helm repo update
helm install apisix apisix/apisix \
--set gateway.type=NodePort \
--set admin.allow.ipList="{}" \
--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 NodePort, so that clients can access Apache APISIX through the Node IPs and the assigned port. If you want to expose a LoadBalancer service, try to use Porter.

Another thing that should be concerned that the allow.ipList field should be customized according to the Pod CIDR settings, so that the apisix-ingress-controller instances can access the APISIX instances (resources pushing).

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

The admin key used above is the default one. If you change the admin key configuration when you deployed APISIX, please remember to change it here.

Change the image.tag to the apisix-ingress-controller version that you desire. Wait for 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.