Kubernetes

Explain what will happen when running apply on the following block

apiVersion: v1
kind: Service
metadata:
  name: some-app
spec:
  type: NodePort
  ports:
  - port: 8080
    nodePort: 2017
    protocol: TCP
  selector:
    type: backend
    service: some-app

Difficulty: unrated

Source: bregman-arie/devops-exercises by Arie Bregman

Answer

It creates a new Service of the type "NodePort" which means it can be used for internal and external communication with the app.

The port of the application is 8080 and the requests will forwarded to this port. The exposed port is 2017. As a note, this is not a common practice, to specify the nodePort.

The port used TCP (instead of UDP) and this is also the default so you don't have to specify it.

The selector used by the Service to know to which Pods to forward the requests. In this case, Pods with the label "type: backend" and "service: some-app".