Helm安装instana-agent失败提示ClusterRole已存在问题咨询
问题场景
执行kubectl get ns命令查询集群现有命名空间,返回结果如下:
communication-prod Active 69d custom-metrics Active 164d default Active 218d kube-node-lease Active 218d kube-public Active 218d kube-system Active 218d notification Active 191d notification-stock Active 118d
执行如下Helm命令安装instana-agent:
helm install instana-agent \ --repo https://agents.instana.io/helm \ --namespace instana-agent \ --create-namespace \ --set agent.key=foo\ --set agent.downloadKey=bar \ --set agent.endpointHost=ingress-green-saas.instana.io \ --set agent.endpointPort=443 \ --set cluster.name='communication-engine-prod' \ --set zone.name='asia-south1' \ instana-agent
执行过程中抛出如下报错:
Error: INSTALLATION FAILED: rendered manifests contain a resource that already exists. Unable to continue with install: ClusterRole "instana-agent" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "instana-agent"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "instana-agent"
报错触发原因
- 核心原因是集群中已经存在名为
instana-agent的集群级资源ClusterRole,且该资源不满足Helm的资源归属校验规则,Helm为了避免非管控资源被误覆盖,直接终止安装流程。 - 从初始查询的命名空间列表可以确认,安装前集群不存在
instana-agent命名空间,排除同命名空间下已有同名Helm release冲突的可能。现存的instana-agentClusterRole既没有配置值为Helm的app.kubernetes.io/managed-by标签,也缺少meta.helm.sh/release-name=instana-agent、meta.helm.sh/release-namespace=instana-agent两个必要的归属注解,Helm无法将其识别为当前待安装release的所属资源。 - 这类残留资源通常来自两类前置操作:一是之前在该集群安装过instana-agent,卸载时没有清理完全,残留了集群范围的ClusterRole资源;二是之前通过非Helm渠道(比如直接kubectl apply原生YAML、其他自动化运维工具)部署过instana-agent相关组件,提前创建了同名ClusterRole。
内容的提问来源于stack exchange,提问作者souparno majumder
相关产品推荐
相关产品推荐

