In kubernetes, I always see the service's definition like this:
---
apiVersion: v1
kind: Service
metadata:
name: random-exporter
labels:
app: random-exporter
spec:
type: ClusterIP
selector:
app: random-exporter
ports:
- port: 9800
targetPort: http
name: random-portwhose targetPort is http, it's human friendly!
And what I'm interested is that is there more named port such as http in kubernetes? Maybe https?
Usually you refer to target port by its number. But you can give a specific name to each pod`s port and refer this name in your service specification.
This will make your service clearer. Here you have example where you named your ports in pod.
apiVersion: v1
kind: Pod
metadata:
name: test
spec:
containers:
- name: test
ports:
- name: http
containerPort: 8080
- name: https
containerPort: 8443 And here you refer to those ports by name in the service yaml.
apiVersion: v1
kind: Service
metadata:
name: test-svc
spec:
ports:
- name: http
port: 80
targetPort: http
- name: https
port: 443
targetPort: https Also from the kubernetes documention you may find this information:
targetPort - Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports.