【问题标题】:Can multiple Kubernetes NodePort services share the same backend target?多个 Kubernetes NodePort 服务可以共享同一个后端目标吗?
【发布时间】:2019-08-08 10:00:59
【问题描述】:
我在 GKE 上运行一个集群,一个特定的 http 路径需要比负载平衡器默认的 30 秒更长的超时时间。所以我想使用 GKE BackendConfig 对象来延长超时时间,但我不想将它用于所有请求,只是这个特定的路径。我可以将 Ingress 配置为基于路径扇出到两个 NodePort,一个具有较长超时的 BackendConfig,然后 NodePort 将“扇入”到同一个 targetPort 后端?
【问题讨论】:
标签:
kubernetes
google-cloud-platform
google-kubernetes-engine
kubernetes-ingress
google-cloud-networking
【解决方案1】:
我认为您可以按照以下步骤实现您的设计:
1.- 定义 2 BackendConfig:
1.1
api版本:cloud.google.com/v1beta1
种类:后端配置
元数据:
名称:自定义后端
规格:
超时秒:40
连接排水:
drainingTimeoutSec: 60
1.2
api版本:cloud.google.com/v1beta1
种类:后端配置
元数据:
名称:默认后端
规格:
超时秒:30
连接排水:
drainingTimeoutSec: 60
2.- 创建两个服务:
2.1 一个具有较长超时的后端(在本例中为自定义后端)
api版本:v1
种类:服务
元数据:
名称:定制服务
标签:
目的:bsc-config-demo
注释:
beta.cloud.google.com/backend-config: '{"ports": {"80":"custom-backend"}}'
规格:
类型:节点端口
选择器:
目的:bsc-config-demo
端口:
- 端口:80
协议:TCP
目标端口:8080
2.2 另一个默认超时。
api版本:v1
种类:服务
元数据:
名称:默认服务
标签:
目的:bsc-config-demo
注释:
beta.cloud.google.com/backend-config: '{"ports": {"80":"default-backend"}}'
规格:
类型:节点端口
选择器:
目的:bsc-config-demo
端口:
- 端口:80
协议:TCP
目标端口:8080
- 创建入口,定义两条不同的路径:
apiVersion: extensions/v1beta1
种类:入口
元数据:
名称:我的 bsc 入口
规格:
规则:
- 网址:
路径:
- 小路: /*
后端:
服务名称:默认服务
服务端口:80
- 路径:/文件夹/*
后端:
服务名称:custom-service
服务端口:80
这里有完整的指南:
Configuring a backend service through Ingress
最好的问候。