我有一个运行多个负载平衡器的GKE集群,还有数十个站点,每个站点都在自己的部署中以clusterip的形式运行。
我想做的是插入一个包含路径,以包含每个负载均衡器(nginx入口控制器)的各种站点配置。我没有使用kubernetes入口,而是使用了各种负载平衡器。我安装了包含所有服务器{} nginx配置的共享数据路径。
我无法确定的是如何让负载均衡器查看它们。我很确定它涉及configmap条目,但我相信我的语法是错误的。
仅需确认一下,我知道如果可以得到此解决方案,那么我的解决方案将像登录负载均衡器并使用其他配置重新加载nginx一样起作用。
我只是需要根据每个nginx入口控制器配置的不同路径自行发生这种情况。我在每个像这样的nginx-ingress-controllers中使用不同的类
metadata:
annotations:
kubernetes.io/ingress.class: nginx-1
,并在各自的配置中,我试图弄清楚获取它以查看那些各种配置的语法
nginx.ingress.kubernetes.io/configuration-snippet:'{“ http”:“ {include / data / nginx / sites-enabled / *;}”}'
我什至试图为Nginx包含一个更高级别的配置文件,该文件内部带有http包含行。
我使用的安装来自
https://kubernetes.github.io/ingress-nginx/deploy/
这是我尝试过的配置示例
apiVersion: v1
data:
enable-vts-status: "false"
kind: ConfigMap
metadata:
annotations:
kubernetes.io/ingress.class: nginx-1
nginx.ingress.kubernetes.io/server-snippet: |
http{
include /data/nginx/sites-enabled/*;
}
creationTimestamp: 2018-12-13T21:00:53Z
labels:
app: nginx-ingress
chart: nginx-ingress-1.0.2
component: controller
heritage: Tiller
release: nginx-controller-1
name: nginx-controller-1-nginx-ingress-controller
namespace: default
resourceVersion: "312253"
selfLink: /api/v1/namespaces/default/configmaps/nginx-controller-1-nginx-ingress-controller
我也尝试过将其放在数据部分。
data:
enable-vts-status: "false"
nginx.conf: |
http{
include /data/nginx/sites-enabled/*;
}
谢谢您的帮助
更新:
这不是答案,但是允许我继续并在单个kubernetes集群上使用这些多个nginx入口。希望这对我的鞋子有帮助。.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: mysite-ingress
annotations:
kubernetes.io/ingress.class: "nginx-2"
custom.nginx.org/rate-limiting: "on"
custom.nginx.org/rate-limiting-rate: "5r/s"
custom.nginx.org/rate-limiting-burst: "1"
spec:
rules:
- host: "mysite.com"
http:
paths:
- path: /
backend:
serviceName: mysiteservicename
servicePort: 8080
执行上述操作确实可以修改nginx.conf,并且更好的是,它会自动刷新我认为的配置,而无需关闭控制器。
因此看来,入口类注释确实适用于多个nginx-ingress-controllers。最后我需要