K8S中的Port
程序员文章站
2022-03-01 17:29:32
...
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上的容器内