我找到了有关如何使用ConfigMap配置NginX入口 Controller 的文档:https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/

不幸的是,我不知道并且在任何地方都找不到如何从我的Ingress Controller 加载该ConfigMap的信息。

我的入口 Controller :

helm install --name ingress --namespace ingress-nginx --set rbac.create=true,controller.kind=DaemonSet,controller.service.type=ClusterIP,controller.hostNetwork=true stable/nginx-ingress

我的配置图:
kind: ConfigMap
apiVersion: v1
metadata:
  name: ingress-configmap
data:
  proxy-read-timeout: "86400s"
  client-max-body-size: "2g"
  use-http2: "false"

我的入口:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress
  annotations:
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
  tls:
    - hosts:
        - my.endpoint.net
      secretName: ingress-tls
  rules:
    - host: my.endpoint.net
      http:
        paths:
          - path: /
            backend:
              serviceName: web
              servicePort: 443
          - path: /api
            backend:
              serviceName: api
              servicePort: 443

如何使我的Ingress从ConfigMap加载配置?

最佳答案

我已经设法通过在--dry-run --debug命令末尾使用helm install选项显示了Helm执行的YAML。然后我注意到那里的 Controller 是用--configmap={namespace-where-the-nginx-ingress-is-deployed}/{name-of-the-helm-chart}-nginx-ingress-controller执行的。
为了加载您的ConfigMap,您需要使用自己的ConfigMap覆盖它(检查 namespace )。

kind: ConfigMap
apiVersion: v1
metadata:
  name: {name-of-the-helm-chart}-nginx-ingress-controller
  namespace: {namespace-where-the-nginx-ingress-is-deployed}
data:
  proxy-read-timeout: "86400"
  proxy-body-size: "2g"
  use-http2: "false"

可以在here中找到配置属性的列表。

关于kubernetes - 如何在Helm NginX Ingress Controller 上使用ConfigMap配置-Kubernetes,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54884735/

10-15 21:53