环境:
k8s,使用helm包管理器安装ingress-nginx时,安装文件出错
- helm 版本:Version:“v3.2.3”
- k8s 版本:Kubernetes v1.23.6
- ingress-nginx
- chart version:4.9.0
- app version:1.9.5
问题描述
前面都按网上的教程做,没有什么大问题
最后一步执行安装命令
helm install ingress-nginx ./ingress-nginx -n ingress-nginx
命令执行失败,报错
Error: template: ingress-nginx/templates/controller-role.yaml:48:9:
executing "ingress-nginx/templates/controller-role.yaml" at
<ne (index .Values.controller.extraArgs "update-status") "false">: error calling ne: invalid type for comparison
原因分析:
问题可能出现在对.Values.controller.extraArgs[“update-status”] 的比较上,其中 .Values.controller.extraArgs 是一个值的集合,而 “update-status” 则是要比较的键。而比较的目的是将其与字符串 “false” 进行比较。
简单地说,就是value.yaml文件中有一个值缺少或者设置不对,.Values.controller.extraArgs[“update-status”] ,就是这个
解决方案:
前言:我在网上貌似找不到相应的解答,所以我也就硬着头皮改value.yaml,下面是我尝试的方法,而且ingress-nginx确实成功运行起来了,但我不确定我的修改到底会造成什么后果,我暂时没搞懂背后的具体原理,仅作为参考
- 首先找到value.yaml文件,value.yaml就在 ingress-nginx 的包中
- 编辑value.yaml,根据报错信息(Values.controller.extraArgs[“update-status”])与yaml文件的结构找到位置 ,即value文件 controller下的extraArgs的位置
小技巧,先使用编辑器查找功能找到 controller,再使用查找功能找到 extraArgs
文章来源:https://www.toymoban.com/news/detail-841869.html
# 如果事先没有修改value.yaml文件
extraArgs: {}
我尝试将其修改为如下,详情看上图
extraArgs:
update-status: "true" # 有兴趣的也可以改成false试一下,我就没再实验的
- 至于为什么这样修改,我的想法是,报错信息说这里的 update-status 与某个值比较失败(invalid type for comparison),但文件里面又没有这个值,我又找不到别的解决方法,我干脆就直接在这里加上一个值 update-status: “true”,再次执行安装指令
helm install ingress-nginx ./ingress-nginx -n ingress-nginx
- 安装成功
文章来源地址https://www.toymoban.com/news/detail-841869.html
- 等待一段时间,等待ingress-nginx运行起来
到了这里,关于k8s helm ingress-nginx Error: template: ingress-nginx/templates/controller-role “update-status“的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!