Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Availability
Important
This feature is available in the Premium and Developer tiers of API Management.
Helm is an open-source packaging tool that helps you install and manage the lifecycle of Kubernetes applications. It allows you to manage Kubernetes charts, which are packages of pre-configured Kubernetes resources.
This article provides the steps for deploying self-hosted gateway component of Azure API Management to a Kubernetes cluster by using Helm.
Prerequisites
- Create a Kubernetes cluster, or have access to an existing one.
Tip
Single-node clusters work well for development and evaluation purposes. Use Kubernetes Certified multi-node clusters on-premises or in the cloud for production workloads.
- Create an Azure API Management instance.
- Provision a gateway resource in your API Management instance.
- Install Helm v3.
Adding the Helm repository
Add Azure API Management as a new Helm repository.
helm repo add azure-apim-gateway https://azure.github.io/api-management-self-hosted-gateway/helm-charts/
Update repo to fetch the latest Helm charts.
helm repo update
Verify your Helm configuration by listing all available charts.
$ helm search repo azure-apim-gateway NAME CHART VERSION APP VERSION DESCRIPTION azure-apim-gateway/azure-api-management-gateway 1.0.0 2.0.0 A Helm chart to deploy an Azure API Management ...
Deploy the self-hosted gateway to Kubernetes
Select Gateways from under Deployment and infrastructure.
Select the self-hosted gateway resource you intend to deploy.
Select Deployment.
A new token in the Token text box was autogenerated for you using the default Expiry and Secret Key values. Adjust either or both if desired and select Generate to create a new token.
Take note of your Token and Configuration URL
Install the self-hosted gateway by using the Helm chart
helm install azure-api-management-gateway \ --set gateway.configuration.uri='<your configuration url>' \ --set gateway.auth.key='<your token>' \ azure-apim-gateway/azure-api-management-gateway
Execute the command. The command instructs your Kubernetes cluster to:
- Download the image of the self-hosted gateway from the Microsoft Container Registry and run it as a container.
- Configure the container to expose HTTP (8080) and HTTPS (8081) ports.
Important
By default, the gateway is using a ClusterIP service and is only exposed inside the cluster. You can change this by specifying the type of Kubernetes service during installation.
For example, you can expose it through a load balancer by adding
--set service.type=LoadBalancer
Run the following command to check the gateway pod is running. Your pod name will be different.
kubectl get pods NAME READY STATUS RESTARTS AGE azure-api-management-gateway-59f5fb94c-s9stz 1/1 Running 0 1m
Run the following command to check the gateway service is running. Your service name and IP addresses will be different.
kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE azure-api-management-gateway ClusterIP 10.0.229.55 <none> 8080/TCP,8081/TCP 1m
Return to the Azure portal and confirm that gateway node you deployed is reporting healthy status.
Tip
Use kubectl logs <gateway-pod-name>
command to view a snapshot of self-hosted gateway log.
Related content
- Learn more about the self-hosted gateway, see Azure API Management self-hosted gateway overview.
- Learn more about guidance for running the self-hosted gateway on Kubernetes in production.
- Learn more about the observability capabilities of the Azure API Management gateways.