kubernetes - 将 GCP 节点区域值注入 Nginx 入口控制器以进行区域感知路由
问题描述
我希望在多个区域中部署 Nginx 入口控制器,并希望能够使用环境变量将区域/区域标签注入到我的 pod 中以进行区域感知路由。在区域感知路由中,运行在区域上的 pod 将流量发送到运行在 zone-a 上的后端服务器。这将从本质上降低区域间成本。
我研究了向下的 API,但这似乎只从 pod/服务注入标签/元数据,而不是从运行这些 pod 的节点注入标签/元数据。
是否有任何可行的解决方案将节点区域注入 Nginx pod,以便我可以使用环境变量以及 Nginx 中的地图功能来选择正确的上游后端。
先感谢您
解决方案
一个选项可能是您通过 Downward API 注入节点名称,然后使用sidecar 容器通过Google Cloud API 获取区域,最后相应地注入环境变量。
将环境变量从一个容器注入另一个容器通常并不简单。首先,这样的容器应该在主容器之前运行——这可以在 Kubernetes 中通过init containers来实现。其次,您需要注入信息。一种选择是使用共享卷(但您需要一种方法来观看它或在主容器的启动时读取它以填充 env vars)。另一种选择是使用configmaps,其中 sidecar/init 容器填充要由主容器使用的 configmap ——显然这个问题已经解决了,例如,here。
推荐阅读
- node.js - 在颤振中从 MultipartRequest 发送图像时无法检测到图像
- swift - Macos Cocoa 应用程序中未显示自定义字体
- mongodb - 填充方法未填充我的评论数组
- multiprocessing - 使用 torch.multiprocessing 时 Pytorch 模型前进速度降低
- html - 表格上方出现未知空格(在 asp.net 数据列表中)
- javascript - 嵌套循环解决方案的时间复杂度如何比使用缓存的解决方案最差?
- django - Django React:API HTML 响应不呈现浏览器
- android - View Pager 2 /Recycler 视图因不一致而崩溃
- jquery - 摆脱移动视图上的水平滚动条
- javascript - State ValueChange 无法重新渲染组件