gpt4 book ai didi

kubernetes - 为什么入口 "servicePort"可以作为服务的 "port"和 "targetPort"?

转载 作者:行者123 更新时间:2023-12-02 11:28:35 24 4
gpt4 key购买 nike

今天我遇到了关于servicePort的误解。

我希望该服务可以与仅指定servicePort: 80的入口链接,但是servicePort: 80servicePort: 8080都可以工作。

有人可以帮助我了解为什么porttargetPort这两个端口不仅由port都由服务公开吗?

服务(应用程序)

spec:
type: ClusterIP
ports:
- port: 80
targetPort: 8080

入口(ingress-nginx)
spec:
rules:
- host: example.com
http:
paths:
- path: /
backend:
serviceName: app
servicePort: 8080

最佳答案

我认为,
集群中的每个Pod都有一个终结点,该终结点是Pod的 IP targetPort
您可以使用以下命令列出端点。

kubectl get endpoints
现在,如果您使用服务来公开您的Pod,则它们将具有 群集IP 服务端口kubectl get services现在,您可以编写入口规则,以通过 端点集群ip 公开您的Pod。但是,只有少数Ingress-Controller可以执行此任务。例如 nginx-ingress-controller
为什么要使用 端点而不是 cluster-ip或Service

The NGINX ingress controller does not use Services to route traffic to the pods. Instead it uses the Endpoints API in order to bypass kube-proxy to allow NGINX features like session affinity and custom load balancing algorithms. It also removes some overhead, such as conntrack entries for iptables DNAT.


这是进一步研究的链接 Why endpoints and not services

关于kubernetes - 为什么入口 "servicePort"可以作为服务的 "port"和 "targetPort"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49829452/

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