Kubernetes Nginx反向代理在configmap中包含路径

时间:2018-12-14 15:11:19

标签: nginx kubernetes google-kubernetes-engine configmap

我有一个运行多个负载平衡器的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。最后我需要

  • nginx-ingress-controller工作负载(这还会创建默认的后端工作负载和负载均衡器服务)
  • asp.net核心部署工作负载(或任何服务)
  • 群集IP服务(内部部署的公开内容)
  • 将nginx.conf条目与各自的入口控制器相关联的入口服务

0 个答案:

没有答案