gpt4 book ai didi

kubernetes - NodePort 是否请求部署之间的平衡?

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

所以我在 Google Cloud 上设置了一个完整的堆栈,我有几个组件需要相互通信,所以我想出了以下流程:

入口 -> Apache 服务 -> Apache 部署(2 个实例) -> 应用服务 -> 应用部署(2 个实例)

因此 Ingress 在我的 2 个 Apache 实例之间很好地划分了请求,但是 Apache 部署并没有在我的 2 个应用程序部署之间很好地划分它。

服务(Apache 和 App)在这两种情况下都是 NodePort 服务。

我想要实现的是服务(Apache 和应用程序)在它们的链接部署中对它们收到的请求进行负载平衡,但我不知道 NodePort 服务是否可以做到这一点,所以我想知道如何实现这个。

应用服务 yaml 如下所示:

apiVersion: v1
kind: Service
metadata:
name: preprocessor-service
labels:
app: preprocessor
spec:
type: NodePort
selector:
app: preprocessor
ports:
- port: 80
targetPort: 8081

最佳答案

如果您正在通过 clusterIP 并使用默认代理模式 iptables ,然后 NodePort 服务将执行随机方法(Kubernetes 1.1 或更高版本),这称为 iptables proxy mode .对于早期的 Kubernetes 1.0,默认值为 userspace proxy mode循环法。如果你想控制这种行为,你可以使用 ipvs proxy mode .

当我说 clusterIP 时,我指的是只有集群才能理解的 IP 地址,如下所示:

$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
http-svc NodePort 10.109.87.179 <none> 80:30723/TCP 5d
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 69d

当您指定 NodePort 时,它还应该是跨所有集群节点的网格。换句话说,集群中的所有节点都将在该特定端口上监听它们的外部 IP,但是,如果应用程序或 pod 恰好在该特定节点上运行,您将收到来自应用程序或 pod 的响应。因此,您可以潜在地设置一个外部负载均衡器,使其后端指向特定的 NodePort 并且流量将根据端口上的健康检查进行转发。

我不确定您的情况,是否有可能您没有使用 clusterIP

关于kubernetes - NodePort 是否请求部署之间的平衡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52542260/

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