kubernetes - Kubernetes ExternalName 服务添加标头
问题描述
TLDR:我正在使用 AKS 运行 Kubernetes 集群。我创建了一个外部名称服务来代理外部地址。我想在请求中添加一个“主机”标头。我该怎么做呢?
对于更多上下文,我有一个入口控制器来处理所有传入流量。我想将该流量的子集(基于路由)路由到外部 Azure 函数。我已经使用我的 Azure 函数的主机名设置了一个 ExternalName 服务,并将流量路由到它。但是,由于 Microsoft 处理路由到其函数的方式,标头中需要具有正确 FQDN 的“主机”值。
我不想让发送原始请求的人将此包含在标头中,因此当流量被代理到 Azure 函数时,我想代表他们添加它。
这是我的服务文件:
kind: Service
apiVersion: v1
metadata:
name: azure-function-proxy-service
labels:
app: proxy-service
spec:
type: ExternalName
externalName: azure-function.azurewebsites.net
以及相关的入口规则代码:
- host: hostto.proxy.net
http:
paths:
- path: /route/to/proxy
backend:
serviceName: azure-function-proxy-service
servicePort: 80
解决方案
我发现我真正想做的是在请求通过我的入口控制器时修改请求的标头。我发现这样做的最佳选择是,nginx.ingress.kubernetes.io/configuration-snippet
但它并没有给我想要的细粒度控制。
最终我不得不建立一个额外的 nginx 实例来代理请求,以便我可以完全控制 nginx 配置。
推荐阅读
- ios - 自定尺寸表视图单元内的自定尺寸表视图
- sql - SQL 中有没有一种方法可以将所有具有相同 ID 的“开始”到“结束”进程所花费的时间相加?
- python - 如何根据一些输入数据选择张量中的元素?
- python - anaconda 安装 turicreate 失败
- c++ - 如何在其他文件中使用主文件的场景对象?
- pandas - 无法使用 pd.panel 将字典数据转换为面板
- python - 每次特定列的字符串内容更改时,从 0 重新启动索引
- android - 如何在滚动时隐藏工具栏,同时将此行为排除在底部横幅广告视图之外?
- python - entry_fn(i, j) 制作一个矩阵
- javascript - 合并 JSON 对象以处理在 React 上呈现重复信息