同一后端上用于 HTTPS 的 GKE Ingress 和用于 TCP 的 LoadBalancer?
GKE Ingress for HTTPS and LoadBalancer for TCP on same backend?
用例是这样的:
我有一个 RabbitMQ 集群,带有基于 websocket 的 STOMP。 websocket 使用 SSL (wss:x.x.x.x)。我设置了一个 Ingress 来处理证书。它将流量转发到内部端口 15674。
RabbitMQ 还需要在端口 5672 上接受 TCP。
Ingress负载均衡器不做TCP,是L7。 Service LoadBalancer 不做 HTTPS,它是 L4。
是否可以设置 Ingress 和 Service LoadBalancer 指向相同的后端但不同的端口?
还有其他方法吗?
GKE Ingress 仅适用于 HTTP / HTTPS /“HTTP/2”(TLS) 流量,您可以创建一个 GKE TCP LB 指向您在不同端口上拥有的相同后端。
像这样:
apiVersion: "v1"
kind: "Service"
metadata:
name: "l4-loadbalancer"
namespace: "default"
labels:
app: "nginx"
spec:
ports:
- protocol: "TCP"
port: 80
targetPort: 80
selector:
app: "nginx"
type: "LoadBalancer"
loadBalancerIP: ""
您也可以仅使用 GKE tcp 负载均衡器来处理所有这些,但缺点是您需要直接在后端处理您的 SSL 证书,如果您希望 GCP 处理这个,那么2 负载平衡器方法会更好。
用例是这样的: 我有一个 RabbitMQ 集群,带有基于 websocket 的 STOMP。 websocket 使用 SSL (wss:x.x.x.x)。我设置了一个 Ingress 来处理证书。它将流量转发到内部端口 15674。 RabbitMQ 还需要在端口 5672 上接受 TCP。
Ingress负载均衡器不做TCP,是L7。 Service LoadBalancer 不做 HTTPS,它是 L4。
是否可以设置 Ingress 和 Service LoadBalancer 指向相同的后端但不同的端口? 还有其他方法吗?
GKE Ingress 仅适用于 HTTP / HTTPS /“HTTP/2”(TLS) 流量,您可以创建一个 GKE TCP LB 指向您在不同端口上拥有的相同后端。
像这样:
apiVersion: "v1"
kind: "Service"
metadata:
name: "l4-loadbalancer"
namespace: "default"
labels:
app: "nginx"
spec:
ports:
- protocol: "TCP"
port: 80
targetPort: 80
selector:
app: "nginx"
type: "LoadBalancer"
loadBalancerIP: ""
您也可以仅使用 GKE tcp 负载均衡器来处理所有这些,但缺点是您需要直接在后端处理您的 SSL 证书,如果您希望 GCP 处理这个,那么2 负载平衡器方法会更好。