当容器在机器上运行时,必须指定它应该运行的端口,以便机器中的其他服务可以通过端口访问此容器。 但是在 kubernetes 中,每个 Pod 都有自己的 IP 地址,用户可以提及传入端口,因此其他 Pod 可以通过 IP:Port 地址进行通信。
那么拥有目标端口有什么需要。我觉得可以为"目标端口"字段设置任何端口,其他 pod 将能够无缝地与之通信。
---
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
ports:
- port: 8080
targetPort: 8070
nodePort: 31222
protocol: TCP
selector:
component: my-service-app
端口:是K8S服务使用的端口
目标端口:是容器为应用程序提供服务的端口
nodePort:是服务在集群外部公开的端口