nginx - 将 Helm chart nginx-ingress 与自定义 nginx 模板结合使用

标签 nginx kubernetes kubernetes-ingress

我正在尝试通过 Helm 安装 nginx-ingress Controller ,但我想使用自定义 nginx 模板。但是,我无法理解它是如何工作的。根据docs我可以使用名为 controller.customTemplate.configMapName 的参数。参数说明为。

configMap containing a custom nginx template

我创建了一个包含 nginx 模板的 ConfigMap,如下所示

apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-template
data:
  nginx.tmpl: nginx.tmpl

nginx.tmpl 包含 nginx 配置 + 以及每个服务器 block 上的自定义 header 。我安装图表如下:

helm install stable/nginx-ingress --namespace kube-system --set controller.customTemplate.configMapName="nginx-template"

但是,在运行上述命令时出现以下错误。

Error: release listless-ant failed: Deployment.apps "listless-ant-nginx-ingress-controller" is invalid: [spec.template.spec.volumes[0].configMap.items[0].key: Required value, spec.template.spec.containers[0].volumeMounts[0].name: Not found: "nginx-template-volume"]

我的问题是,我做错了什么?

最佳答案

nginx 配置模板的默认位置是 /etc/nginx/template/nginx.tmpl 您必须将其配置为卷挂载。

如果您使用的是自定义 nginx.conf https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/custom-template/,您可以按照官方文档中提到的步骤进行操作。

关于nginx - 将 Helm chart nginx-ingress 与自定义 nginx 模板结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51791298/

相关文章:

kubernetes - 无法在 nginx-ingress 上添加具有相同主机的多个 Ingress

ssl - 如何在 nginx 配置中将 ssl 指令放在服务器 block 而不是 http block 中?

batch-file - 使用 ffmpeg 进行 Nginx 实时转码

php - 是否可以在 nginx 没有安装卷的情况下将请求传递给 php-fpm

kubernetes - 自定义 Helm 图表存储库是什么格式?

dns - 具有嵌套子域 (GCP) 的 Kubernetes 主机入口

php - 无法通过phpmyadmin导入数据库

kubernetes - Kubectl JSONPath表达式根据当前上下文获取cluster.server属性

docker - 在 kubernetes statefulset 中的 elasticsearch 数据目录上 chown 时权限被拒绝

kubernetes - Kubernetes Traefik,保持服务不可用