错误:此命令需要1个参数:图表名称

问题描述

在执行此操作时,我正在按照Kubernetes的官方说明安装OneAgent,但出现标题中提到的错误。当我在安装头盔后添加--name时,我会得到

Error: apiVersion 'v2' is not valid. The value must be "v1"

头盔说明:

helm install dynatrace-oneagent-operator \
dynatrace/dynatrace-oneagent-operator -n\
dynatrace --values values.yaml

解决方法

好吧,如果您使用的是this helm chart,则说明中要求头盔3

支持首次展示的Dynatrace OneAgent操作员头盔图 Kubernetes和OpenShift中Dynatrace OneAgent的生命周期和生命周期 集群。

此头盔图表需要头盔3。?

,您使用头盔2

Client: &version.Version{SemVer:"v2.16.1",GitCommit:"bbdfe5e7803a12bbdf97e94cd847859890cf4050",GitTreeState:"clean"} Server: &version.Version{SemVer:"v2.16.1",GitTreeState:"clean"}

关于您的错误消息:

Error: apiVersion 'v2' is not valid. The value must be "v1"

在运行需要 helm 3 的图表时,由于apiVersion已从v1增至{ {1}}仅在头盔3 中使用。实际上,这是两个 helm 版本之间的主要区别之一。您可以详细了解here

  1. 图表apiVersion:

Helm决定在Helm3中将Chart API版本增加到v2:

v2

您可以按照this official guide轻松安装 Helm 3

请注意,除了使用 helm 图表之外,还可以使用# Chart.yaml -apiVersion: v1 # Helm2 +apiVersion: v2 # Helm3 ... Kubernetes 上部署 OneAgent Operator 阅读official dynatrace docs,这实际上是推荐的安装方式:

我们建议使用Kubectl在Kubernetes上安装OneAgent Operator。 如果您喜欢Helm,则可以使用OneAgent Helm图表作为基本 替代。

,

这些错误已经为我解决了! #此命令需要 1 个参数:图表名称 #apiVersion 'v2' 无效。值必须是“v1” #release seq-charts 失败:命名空间“seq”被禁止:用户 “system:serviceaccount:kube-system:default” 无法在 API 中获取资源“命名空间” 命名空间“seq”中的组“”

我开始将本地 PowerShell 用于 Azure Kubernetes。 这些错误是我对 Windows 环境进行一些更改时开始的,但我的可能也适用于您。

PS C:\Users\{User}> Connect-AzAccount
PS C:\Users\{User}> Set-AzContext 'Subscription Name or ID'
PS C:\Users\{User}> az configure --defaults group=AKS
PS C:\Users\{User}> kubectl create namespace seq
PS C:\Users\{User}> kubectl create namespace prometheus-log
PS C:\Users\{User}> C:\ProgramData\chocolatey\choco upgrade chocolatey
PS C:\Users\{User}> C:\ProgramData\chocolatey\choco install kubernetes-helm 

在那之后。

 PS C:\Users\{User}> helm install --name prometheus prometheus-community/kube-prometheus-stack --namespace prometheus-log 
Error: This command needs 1 argument: chart name

在那之后,我尝试了这个。

PS C:\Users\{User}> C:\Users\vahem\.azure-helm\helm install --name prometheus prometheus-community/kube-prometheus-stack --namespace prometheus-log 
Error: apiVersion 'v2' is not valid. The value must be "v1"

在那之后,我尝试了这个。

PS C:\Users\{User}> helm install --name seq-charts --namespace seq --set persistence.existingClaim=seq-pvc stable/seq
Error: release seq-charts failed: namespaces "seq" is forbidden: User "system:serviceaccount:kube-system:default" cannot get resource "namespaces" in API group "" in the namespace "seq"

经过多次反复试验,我发现系统上有两个不同版本的“helm”。 C:\Users{User}.azure-helm => V2.x.x
C:\ProgramData\chocolatey\lib\kubernetes-helm\tools\windows-amd64\helm =>V3.x.x

最后我试了一下,效果很好。使用 'helm v3.x.x' 并且没有参数名称 '--name'

PS C:\Users\{User}> C:\ProgramData\chocolatey\lib\kubernetes-helm\tools\windows-amd64\helm repo update
PS C:\Users\{User}> C:\ProgramData\chocolatey\lib\kubernetes-helm\tools\windows-amd64\helm install seq-charts --namespace seq --set persistence.existingClaim=seq-pvc stable/seq
PS C:\Users\{User}> C:\ProgramData\chocolatey\lib\kubernetes-helm\tools\windows-amd64\helm install prometheus prometheus-community/kube-prometheus-stack --namespace prometheus-log --set persistence.existingClaim=prometheus-pvc

这对我来说太棒了!

,

除非您正在使用helm2的免耕版,否则请将您的头盔版本升级到3。