I'm looking for a way to specify my LoadBalancer IP while installing APISIX on AKS in Azure.
The official documentation shows us the general installation with a few overrides:
helm repo add apisix https://charts.apiseven.com
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
# We use Apisix 3.0 in this example. If you're using Apisix v2.x, please set to v2
ADMIN_API_VERSION=v3
helm install apisix apisix/apisix \
--set gateway.type=LoadBalancer \
--set ingress-controller.enabled=true \
--create-namespace \
--namespace ingress-apisix \
--set ingress-controller.config.apisix.serviceNamespace=ingress-apisix \
--set ingress-controller.config.apisix.adminAPIVersion=$ADMIN_API_VERSION
kubectl get service --namespace ingress-apisix
The documentation continues to say:
The gateway service type will be set to LoadBalancer. You can find the load balancer IP address by running:
kubectl get service apisix-gateway --namespace ingress-apisix -o jsonpath='{.status.loadBalancer.ingress[].ip}'
This is fine perhaps for some non production scenarios, but it doesn't really give you control over which IP is being used. This can be a hassle for DNS. In addition, there's no guarantee of this dynamic IP. It's subject to changing if the LoadBalancer bounces or during upgrades. It could rotate to a new IP breaking DNS.
I'm looking for help with annotations or another configuration option to specify a pre-existing static Azure IP instead of rolling the dice and being at the mercy of dynamic IP rotation.
The NGINX ingress controller, by contrast has a fairly simple way of handling this with the following annotations.
Create an AKS cluster
Create a static IP address in Azure in the cluster's resource group
Install or upgrade the NGINX helm chart with the specified load balancer IP
I'm looking for a way to specify my LoadBalancer IP while installing APISIX on AKS in Azure.
The official documentation shows us the general installation with a few overrides:
The documentation continues to say:
kubectl get service apisix-gateway --namespace ingress-apisix -o jsonpath='{.status.loadBalancer.ingress[].ip}'
This is fine perhaps for some non production scenarios, but it doesn't really give you control over which IP is being used. This can be a hassle for DNS. In addition, there's no guarantee of this dynamic IP. It's subject to changing if the LoadBalancer bounces or during upgrades. It could rotate to a new IP breaking DNS.
I'm looking for help with annotations or another configuration option to specify a pre-existing static Azure IP instead of rolling the dice and being at the mercy of dynamic IP rotation.
The NGINX ingress controller, by contrast has a fairly simple way of handling this with the following annotations.