1、nodePort: 外部机器可访问的端口

2、targetPort:容器的端口(最根本的端口入口),与制作容器时暴露的端口一致(DockerFile中EXPOSE)

3、port: kubernetes中的服务之间访问的端口

apiVersion: v1
kind: Service
metadata:
  name: {{ include "common.servicename" . }}
  namespace: {{ include "common.namespace" . }}
  labels:
    app: {{ include "common.name" . }}
    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
    release: {{ .Release.Name }}
    heritage: {{ .Release.Service }}
spec:
  type: {{ .Values.service.type }}
  ports:
    {{if eq .Values.service.type "NodePort" -}}
    - port: {{ .Values.service.internalPort }}
      nodePort: {{ .Values.global.nodePortPrefix | default "302" }}{{ .Values.service.nodePort }}
    {{- else -}}
    - port: {{ .Values.service.externalPort }}
      targetPort: {{ .Values.service.internalPort }}
    {{- end}}
      name: {{ .Values.service.portName }}
  selector:
    app: {{ include "common.name" . }}
    release: {{ .Release.Name }}

 

参考:https://blog.csdn.net/xinghun_4/article/details/50492041

port、nodePort总结

总的来说,port和nodePort都是service的端口,前者暴露给集群内客户访问服务,后者暴露给集群外客户访问服务。从这两个端口到来的数据都需要经过反向代理kube-proxy流入后端pod的targetPod,从而到达pod上的容器内

Logo

开源、云原生的融合云平台

更多推荐