What will happen if nodeport no is not define for k8 service which defined as NodePort?

6/24/2019

Suppose I have 4 deployment files and for that I have 1 combined service file which will create service objects for all 4 services(deployment.yaml). Now I want to expose only 1 service pod as NodePort service, for which I have nodeport defined along with port and target port. for rest of the 3 services I have only defined port and target port and not the nodeport. Question is, in this case whether the K8 master assign some random nodeport for rest of the 3 services for which nodeport not defined? Service.YAML:

I can always declare 4 nodePorts for 4 services. But How K8s Master will handle below manifest is more I am interested to explore for my app deployment

apiVersion: v1
kind: Service
metadata:
  name: myapp-uwsgi-service
  namespace: myspace
  labels:
    central-app: myapp-uwsgi
spec:
  clusterIP: 10.3.0.106
  type: NodePort
  selector:
    central-app: configuration-uwsgi
  ports:
    -
      name: service-app-1
      port: 10010
      targetPort: 10010
      nodePort: 32123
    -
      name: service-app-2
      port: 10011
      targetPort: 10011
    -
      name: service-app-3
      port: 10012
      targetPort: 10012
    -
      name: service-app-4
      port: 10013
      targetPort: 10013

My expectation and understanding is that rest of the 3 service-app will assigned with some random nodePort from K8s master.

-- Goutam
kubernetes
kubernetes-pod
python
service-node-port-range

1 Answer

6/24/2019

Service type nodeport would assign random ports to others port defined in the service YAML. In your case you would end up with four nodeports

-- P Ekambaram
Source: StackOverflow