kubernetes - 多个 Kubernetes NodePort 服务可以共享同一个后端目标吗?
问题描述
我在 GKE 上运行一个集群,一个特定的 http 路径需要比负载均衡器默认的 30 秒更长的超时时间。所以我想使用 GKE BackendConfig 对象来延长超时时间,但我不想将它用于所有请求,只是这个特定的路径。我可以将 Ingress 配置为基于路径扇出到两个 NodePort,一个具有较长超时的 BackendConfig,然后 NodePort 将“扇入”到同一个 targetPort 后端?
解决方案
我认为您可以按照以下步骤进行设计:
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
- 创建入口,定义两个不同的路径:
apiVersion:extensions/v1beta1 种类:入口元数据:名称:my-bsc-ingress 规范:规则:-http:路径:-路径:/* 后端:serviceName:默认服务服务端口:80 -路径:/folder/* 后端:服务名称:定制服务服务端口:80
完整指南在这里:
此致。
推荐阅读
- mysql - 有点复杂的 MySql 查询
- javascript - Nuxt 构建失败,在 ./node_modules/bootstrap-vue/:varisouspath 中找不到 core-js 依赖项
- python - 在 Google Cloud Storage Bucket 中使用 PIL 更改图像大小(来自 GCloud 中的 VM)
- c# - CanDrag=True 时无法选择 ListBox 中的项目
- r - 根据创建日期过滤 twitter 数据
- bash - 适用于 Mac 的 Bash 'cut' 命令
- xml - 对前兄弟和后兄弟的影响感到困惑
- c++ - Rcpp:将列表中的布尔值从 R 传递到采用 Rcpp::List 的 C++ 函数时出错
- .net - 我如何在 .net core 中调用另一个页面
- mysql - 如何“安全地”终止mysqld?