【发布时间】:2019-01-04 06:40:33
【问题描述】:
我正在使用 nginx 代理对 kubernetes 集群中 StatefulSets 的多个 Headless 服务的请求。我现在遇到的问题是,每当服务 IP 更改时,nginx 不会将服务端点解析为更新的 IP 地址,但仍使用过时的缓存 IP 地址。我曾尝试在 nginx 配置中使用 proxy_pass 中的变量,但它根本无济于事。既在我的本地集群上,也部署在 AWS EKS 上。这是我的 nginx 配置的 sn-p:
upstream svc-foo {
server svc-foo:8080;
keepalive 1024;
}
server {
resolver 127.0.0.1 [::1]:5353 valid=10s;
set $foo http://svc-foo;
location /foo/ {
proxy_pass $foo;
proxy_http_version 1.1;
}
}
当我更新导致服务 IP 更改的服务时,我预计不会出现停机。感谢您提供任何见解和建议。
【问题讨论】:
-
只是想知道,如果您尝试在 nginx 上游配置 (nginx.org/en/docs/http/ngx_http_upstream_module.html#server) 中使用“resolve”参数,以及为什么它没有解决您的问题
-
哦,刚刚发现是在nginx 1.5.12中引入的,所以你还没有那个选项
标签: nginx dynamic service dns kubernetes