【发布时间】:2022-01-24 20:40:48
【问题描述】:
我有运行在 AKS 上的 Web api 应用程序有 2 个副本,因此同一应用程序的 2 个实例/副本正在运行,并且后面我们有 NGINX 负载均衡器,它在两个实例/副本之间分配流量。
现在我有一个 PUT/POST 端点,用于使用 Serilog 动态更改日志级别。
[HttpPut("logLevel")]
public IActionResult ChangeLevel(LogEventLevel eventLevel)
{
_levelSwitch.MinimumLevel = eventLevel;
return Ok();
}
服务 URL 类似于https://XXXXX.com:12345/logLevel,当通过 POSTMAN 工具执行此操作时,它仅对一个副本/POD 有效,而另一个无效(当然!)。
问题是,我在这里有什么选项可以对服务的所有副本执行 API 调用?有没有开箱即用的解决方案?
谢谢。
入口规则:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
namespace: kube-system
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
tls:
- hosts:
- XXXXX.com
secretName: aks-ingress-tls
rules:
- host: XXXXX.com
- http:
paths:
- path: /Servive1/(.*)
pathType: Prefix
backend:
service:
name: Servive1
port:
number: 12345
【问题讨论】:
-
请显示您的 nginx 平衡器配置
-
@AlexanderUshakov,请检查我的入口规则,更新!
标签: nginx kubernetes asp.net-core-webapi azure-aks