<p>I setup a kubernetes cluster on Azure, and I want to host REST Api using Azure API management.</p>

<p>I have create a deployment, service(Type: ClusterIP) in kubernetes, and they both seems to be running fine.</p>

<p>I like to expose REST Api to internet using Azure API management.</p>

<p>My question is:
Whats the most cost effective, and safest way to expose the API ?</p>

<p>I have gone through few articles which dictate to create service as internal load-balancer or NodePort but seems like those are not cost effective.</p>

<p>Although I did created the internal load balance which gives me external-ip but APIM can't excess.</p>

<p>All the kubernetes and Azure gurus, please provide 2 cents and help me!</p>

<p>In below picture, RED color arrow is what I am trying to figure out.
<a href="https://i.stack.imgur.com/GJ9s3.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/GJ9s3.jpg" alt="enter image description here"></a></p>

JainAnk
<p>You will want to setup an <a href="https://learn.microsoft.com/en-us/azure/aks/concepts-network" rel="nofollow noreferrer">Ingress Controller</a>.  There is a good blog post <a href="https://pumpingco.de/blog/control-ingress-to-aks-with-azure-api-management" rel="nofollow noreferrer">here</a> that lays out the same scenario you described and walks you through setting it up.  </p>

<p>Our docs on creating an Ingress Controller can be found <a href="https://learn.microsoft.com/en-us/azure/aks/ingress-tls" rel="nofollow noreferrer">here</a>.</p>
