首页 > 解决方案 > 多个 Kubernetes NodePort 服务可以共享同一个后端目标吗?

问题描述

我在 GKE 上运行一个集群,一个特定的 http 路径需要比负载均衡器默认的 30 秒更长的超时时间。所以我想使用 GKE BackendConfig 对象来延长超时时间,但我不想将它用于所有请求,只是这个特定的路径。我可以将 Ingress 配置为基于路径扇出到两个 NodePort,一个具有较长超时的 BackendConfig,然后 NodePort 将“扇入”到同一个 targetPort 后端?

标签: kubernetesgoogle-cloud-platformgoogle-kubernetes-enginekubernetes-ingressgoogle-cloud-networking

解决方案


我认为您可以按照以下步骤进行设计:

1.- 定义 2 BackendConfig:

1.1 apiVersion:cloud.google.com/v1beta1 种类:BackendConfig 元数据:名称:自定义后端规范:timeoutSec:40 connectionDraining:drainingTimeoutSec:60

1.2 apiVersion:cloud.google.com/v1beta1 种类:BackendConfig 元数据:名称:默认后端规范:timeoutSec:30 connectionDraining:drainingTimeoutSec:60

2.- 创建两个服务:

2.1 一个具有较长超时的后端(在本例中为自定义后端)

apiVersion:v1 种类:服务元数据:名称:自定义服务标签:用途:bsc-config-demo 注释:beta.cloud.google.com/backend-config:'{"ports": {"80":"custom-后端"}}' 规范:类型:NodePort 选择器:目的:bsc-config-demo 端口:- 端口:80 协议:TCP 目标端口:8080

2.2 另一个默认超时。

apiVersion:v1 种类:服务元数据:名称:默认服务标签:目的:bsc-config-demo 注释:beta.cloud.google.com/backend-config:'{"ports": {"80":"default-后端"}}' 规范:类型:NodePort 选择器:目的:bsc-config-demo 端口:- 端口:80 协议:TCP 目标端口:8080

  1. 创建入口,定义两个不同的路径:

apiVersion:extensions/v1beta1 种类:入口元数据:名称:my-bsc-ingress 规范:规则:-http:路径:-路径:/* 后端:serviceName:默认服务服务端口:80 -路径:/folder/* 后端:服务名称:定制服务服务端口:80

完整指南在这里:

通过 Ingress 配置后端服务

此致。


推荐阅读