<p>I have deployed airflow in kubernetes as is descrived in this link: <a href="https://github.com/apache/airflow/tree/master/chart" rel="nofollow noreferrer">https://github.com/apache/airflow/tree/master/chart</a></p>
<p>To access the airflow UI I can do:</p>
<pre><code> kubectl port-forward svc/airflow2-webserver 8080:8080 --namespace default
</code></pre>
<p>But I would want to expose it in a url. I found this guide: <a href="https://godatadriven.com/blog/deploying-apache-airflow-on-azure-kubernetes-service/" rel="nofollow noreferrer">https://godatadriven.com/blog/deploying-apache-airflow-on-azure-kubernetes-service/</a></p>
<p>In the bottom part: FQDN with Ingress controller, he installs a nginx-ingress-controller.</p>
<p>I am pretty new on everything related to this matter, so if I understand correctly, I have to link the port 8080 where airflow is exposing the airflow UI and link it in some way with the nginx-ingress-controller that has an external IP to expose the localhost:8080 to this external IP and then be able to access it outside of kubernetes.</p>
<p>It is correct?</p>

<p>Basically you will create a service object with type load balancer which will be assigned a public ip to the load balancer. Then that service will redirect request to set of pods matching label selectors. You can have an nginx ingress controller as those pods which can proxy pass all the request inside your cluster according to ingress rules. You are using nginx ingress controller so that you have only one load balancer and many applications running instead of having many services seperately exposed publicly. I hope this clarifies things.</p>
