Skip to content

NodePort Ingress exposure

In Kubernetes environments, an Ingress Controller can be exposed externally using the NodePort service type.^[400-devops-06-kubernetes-k8s-learning-linux-02-ingress-readme.md] This configuration maps specific ports on the cluster nodes to the controller's service, allowing external traffic to reach internal resources^[400-devops-06-kubernetes-k8s-learning-linux-02-ingress-readme.md].

Service Configuration

When deployed with a NodePort type, the Ingress Controller service automatically allocates ports on the host machine.^[400-devops-06-kubernetes-k8s-learning-linux-02-ingress-readme.md] For example, a standard deployment might expose HTTP traffic on port 80:30035/TCP and HTTPS traffic on 443:30603/TCP^[400-devops-06-kubernetes-k8s-learning-linux-02-ingress-readme.md]. While the service listens on port 80 inside the cluster, external clients access it via the allocated NodePort (e.g., 30035)^[400-devops-06-kubernetes-k8s-learning-linux-02-ingress-readme.md].

External Access

Direct access to the application can be achieved by targeting a node's IP address and the specific NodePort.^[400-devops-06-kubernetes-k8s-learning-linux-02-ingress-readme.md] For instance, if a domain like myapp.od.com is configured in the Ingress rules, it can be accessed via a browser using the format http://myapp.od.com:30035^[400-devops-06-kubernetes-k8s-learning-linux-02-ingress-readme.md].

Reverse Proxy Integration

To avoid requiring users to specify port numbers in the URL (e.g., :30035), a [[reverse proxy]] can be configured in front of the Kubernetes nodes^[400-devops-06-kubernetes-k8s-learning-linux-02-ingress-readme.md]. An Nginx server, for example, can define an upstream pool pointing to the NodePorts on the backend worker nodes^[400-devops-06-kubernetes-k8s-learning-linux-02-ingress-readme.md]. This setup allows the proxy to listen on standard port 80 and forward traffic for domains matching *.od.com to the Ingress Controller backend^[400-devops-06-kubernetes-k8s-learning-linux-02-ingress-readme.md].

Sources

^[400-devops-06-kubernetes-k8s-learning-linux-02-ingress-readme.md]