问题描述
在执行此操作时,我正在按照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:
- 图表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。