如何解决如何将nginx-ingress注释转换为--set格式以启用Prometheus指标
我想在安装nginx-ingress时在命令行上设置注释。我的values.yaml文件如下所示,我想使用命令行参数而不是values.yaml文件。
controller:
metrics:
port: 10254
enabled: true
service:
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "10254"
serviceMonitor:
enabled: true
namespace: monitoring
namespaceSelector:
any: true
我尝试了以下参数,但是给出了错误
--set controller.metrics.service.annotations."prometheus\.io\/scrape"="true" --set controller.metrics.service.annotations."prometheus\.io\/port"="10254"
错误:
Error: release nginx-ingress failed: Service in version "v1" cannot be handled as a Service: v1.Service.ObjectMeta: v1.ObjectMeta.Annotations: ReadString: expects " or n,but found 1,error found in #10 byte of ...|io/port":10254,"prom|...,bigger context ...|,"metadata":{"annotations":{"prometheus.io/port":10254,"prometheus.io/scrape":true},"labels":{"app.k|...
任何建议应如何准确传递这些批注?
解决方法
我只是遇到了同样的问题!当您查看图表时,他们将其定义为字符串。因此,当我使用下面的命令时,它会成功设置值。诀窍是利用--set-string
而不是--set
helm upgrade ingress-controller ingress-nginx/ingress-nginx --namespace ingress-nginx --set controller.metrics.enabled=true --set-string controller.metrics.service.annotations."prometheus\.io/scrape"="true" --set-string controller.metrics.service.annotations."prometheus\.io/port"="10254"
显示当我们使用helm get values ingress-controller --namespace ingress-nginx
进行验证时设置的值
controller:
metrics:
enabled: true
service:
annotations:
prometheus.io/port: "10254"
prometheus.io/scrape: "true"
现在,如果您想将详细信息输入普罗米修斯,那么看来这对我来说并不奏效。我必须利用controller.podAnnotations
来完成这项工作:
helm upgrade ingress-controller ingress-nginx/ingress-nginx \
--namespace ingress-nginx \
--set controller.metrics.enabled=true \
--set-string controller.podAnnotations."prometheus\.io/scrape"="true" \
--set-string controller.podAnnotations."prometheus\.io/port"="10254"
让我知道这是否对您有用! :)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。