NodePort service type¶
NodePort is a service type in Kubernetes that exposes an application on each Node's IP at a static port, allowing external traffic to reach the service^[400-devops__06-Kubernetes__k8s-learning__05.service__service.md].
Creation and Syntax¶
To create a NodePort service, the --type=NodePort flag is used with the kubectl expose command^[400-devops__06-Kubernetes__k8s-learning__05.service__service.md].
shell
[kubectl](<./kubectl.md>) expose deploy nginx-deployment --port=8000 --target-port=80 --type=NodePort^[400-devops__06-Kubernetes__k8s-learning__05.service__service.md]
This configuration creates a service that listens on a specific port on the cluster nodes and forwards traffic to the target-port of the associated Pods^[400-devops__06-Kubernetes__k8s-learning__05.service__service.md].
Ports and Networking¶
When a NodePort service is created, Kubernetes allocates a specific port in the 30000-32767 range (e.g., 30427) on every node in the cluster^[400-devops__06-Kubernetes__k8s-learning__05.service__service.md]. The service listing displays the port mapping as PORT:SVC_PORT/TCP (e.g., 8000:30427/TCP)^[400-devops__06-Kubernetes__k8s-learning__05.service__service.md].
The service remains accessible via the internal ClusterIP (e.g., 10.96.130.250) while also exposing the external entry point^[400-devops__06-Kubernetes__k8s-learning__05.service__service.md]. Like other service types, it performs load balancing across the selected backend Pods^[400-devops__06-Kubernetes__k8s-learning__05.service__service.md].
Related Concepts¶
- Kubernetes
- [[ClusterIP]]
- [[Service]]
Sources¶
400-devops__06-Kubernetes__k8s-learning__05.service__service.md