我正在尝试通过 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/