gpt4 book ai didi

service - Kubernetes 服务定义中 targetPort 和 port 的区别

转载 作者:行者123 更新时间:2023-12-03 05:13:36 25 4
gpt4 key购买 nike

Kubernetes Service服务定义中可以有 targetPortport:

kind: Service
apiVersion: v1
metadata:
name: my-service
spec:
selector:
app: MyApp
ports:
- protocol: TCP
port: 80
targetPort: 9376

端口targetPort有什么区别?

最佳答案

服务:这会将流量定向到 Pod。

TargetPort:这是应用程序在容器内运行的实际端口。

端口:有时,容器内的应用程序在不同端口上提供不同的服务。

示例:实际应用程序可以运行 8080此应用程序的运行状况检查可以在 8089 上运行容器的港口。因此,如果您访问没有端口的服务,它不知道应该将请求重定向到容器的哪个端口。服务需要有一个映射,以便它可以命中容器的特定端口。

kind: Service
apiVersion: v1
metadata:
name: my-service
spec:
selector:
app: MyApp
ports:
- name: http
nodePort: 30475
port: 8089
protocol: TCP
targetPort: 8080
- name: metrics
nodePort: 31261
port: 5555
protocol: TCP
targetPort: 5555
- name: health
nodePort: 30013
port: 8443
protocol: TCP
targetPort: 8085

如果您点击my-service:8089流量被路由到8080容器的(目标端口)。同样,如果您点击 my-service:8443然后它被重定向到 8085容器的(目标端口)。但这myservice:8089位于 kubernetes 集群内部,当一个应用程序想要与另一应用程序通信时可以使用。因此,要从集群外部访问服务,需要公开运行 kubernetes 的主机上的端口以便流量被重定向到容器的端口。这是node port (主机上暴露的端口)。从上面的示例中,您可以通过host_ip:nodePort从集群外部(Postman或任何rest-client)访问服务。

假设你的主机IP是10.10.20.20您可以通过10.10.20.20:30475访问http、指标、健康服务, 10.10.20.20:31261 , 10.10.20.20:30013 .

编辑:根据Raedwald编辑评论。

关于service - Kubernetes 服务定义中 targetPort 和 port 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49981601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com