我们如何在 Nginx Ingress Controller 上安装动态模块(官方不支持)?(地形,舵图)

mto*_*mto 8 nginx docker kubernetes kubernetes-ingress nginx-ingress

我正在管理 Kubernetes + nginx。我想在 Nginx 入口控制器提供的 nginx 上安装动态模块。这些动态模块不是由 Nginx Ingress Controller 官方配置映射提供的(https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/

所以我想我需要构建自己的 Nginx Ingress Controller Docker 容器。(可能会在此添加?https://github.com/kubernetes/ingress-nginx/blob/8951b7e22ad3952c549150f61d7346f272c563e1/images/nginx/rootfs/build.sh#L618-L632)你知道如何自定义控制器和管理它由掌舵图?我正在考虑从 Github 上的控制器主存储库创建一个 Fork 分支。但我不知道我们如何在 terraform + helm chart 上安装定制版本的控制器。

但是,我更喜欢使用不可定制的解决方案(因为一些注释设置......)

谢谢你。

环境:Kubernetes Nginx Ingress Controller 通过 helm chart + terraform Nginx Ingress Controller 安装 -> https://github.com/kubernetes/ingress-nginx/tree/main/charts/ingress-nginx

地形:

resource "helm_release" "nginx-ingress-controller" {
  name      = "nginx-ingress-controller"
  chart     = "ingress-nginx/ingress-nginx"
  namespace = "kube-system"
  version   = "3.34.0"
}
Run Code Online (Sandbox Code Playgroud)

动态模块 https://docs.nginx.com/nginx/admin-guide/dynamic-modules/dynamic-modules/ (安装过程可能是使用--add-dynamic-module选项,并且集合load_module modules/something.songinx.conf通过ingress.yaml

wil*_*oop 0

请查看云原生构建包。图像可以直接从应用程序源构建,无需额外说明。

也许这个nginx-buildpack可以解决您的问题:

加载动态模块 您可以使用模板通过 load_module 指令设置动态模块的路径。

附言。https://12factor.net/build-release-run

十二因素应用程序在构建、发布和运行阶段之间严格分离。例如,不可能在运行时对代码进行更改,因为无法将这些更改传播回构建阶段。