Kubernetes NodePort Custom Port

5/12/2017

Is there way to specify a custom NodePort port in a kubernetes service YAML definition? I need to be able to define the port explicitly in my configuration file.

-- Artem Dolobanko
docker
flannel
google-kubernetes-engine
kubernetes
networking

2 Answers

5/12/2017

You can set the type NodePort in your Service Deployment. Note that there is a Node Port Range configured for your API server with the option --service-node-port-range (by default 30000-32767). You can also specify a port in that range specifically by setting the nodePort attribute under the Port object, or the system will chose a port in that range for you.

So a Service example with specified NodePort would look like this:

apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    name: nginx
spec:
  type: NodePort
  ports:
    - port: 80
      nodePort: 30080
      name: http
    - port: 443
      nodePort: 30443
      name: https
  selector:
    name: nginx

For more information on NodePort, see this doc. For configuring API Server Node Port range please see this.

-- Oswin Noetzelmann
Source: StackOverflow

8/23/2019

You can define static NodePort using nodeport in service.yaml file

spec:
  type: NodePort
  ports:
    - port: 3000
      nodePort: 31001
      name: http
-- Sachin Arote
Source: StackOverflow