Kubernetes 为现有资源安装舵3

Kubernetes 为现有资源安装舵3,kubernetes,kubernetes-helm,Kubernetes,Kubernetes Helm,运行舵时安装(舵3.0.2) 我得到以下错误:错误: 呈现的清单包含已存在的资源。无法继续安装:现有资源冲突:种类:PodSecurityPolicy,命名空间:,名称:po kube state metrics 但是我没有找到它,而且在错误中我没有得到ns,我如何才能删除它 运行kubectl get all--all namespace时,我看到了所有的资源,但没有看到po kub state metrics。。。其他资源也会发生这种情况,知道吗 我得到了相同的错误:监视grafana实体和

运行
舵时安装
(舵3.0.2)

我得到以下错误:错误:
呈现的清单包含已存在的资源。无法继续安装:现有资源冲突:种类:PodSecurityPolicy,命名空间:,名称:po kube state metrics

但是我没有找到它,而且在错误中我没有得到ns,我如何才能删除它

运行
kubectl get all--all namespace时,我看到了所有的资源,但没有看到
po kub state metrics
。。。其他资源也会发生这种情况,知道吗

我得到了相同的错误:
监视grafana
实体和
kubectl get-PodSecurityPolicy——所有名称空间都是:


monitoring grafana false RunAsAny RunAsAny RunAsAny false configMap、emptyDir、projected、secret、do
首先,在重新安装之前,您需要确保已成功卸载helm
版本

要列出所有版本,请使用:

$ helm list --all --all-namespaces
要卸载版本,请使用:

$ helm uninstall <release-name> -n <namespace>
如果卸载无法解决问题,可以尝试使用以下命令进行清理:

$ helm template <NAME> <CHART> --namespace <NAMESPACE> | kubectl delete -f - 
现在,请再次尝试安装

更新:

让我们考虑您的图表名称是“代码> MON/CODE”,您的发布名是“代码> Po</代码>。由于您位于图表目录(

)中,如下所示:

.
├── mon
│   ├── Chart.yaml
│   ├── README.md
│   ├── templates
│   │   ├── one.yaml
│   │   ├── two.yaml
│   │   ├── three.yaml
│   │   ├── _helpers.tpl
│   │   ├── NOTES.txt
│   └── values.yaml
然后,您可以跳过
helm template
命令中的helm repo名称(即stable)
Helm
将使用目录中的
mon
图表

$ helm template po mon --namespace mon | kubectl delete -f -

我对CRDs对象也有同样的错误。我在Github上使用了这个图表,为了防止这个错误,我使用了
--skip crds
标志。可能您正在使用的项目有如下内容:

对于我的案例,我可以使用--force成功升级我的构建


这将有助于同一版本,如果您正在使用不同的版本,请为冲突资源选择不同的名称,因为现在Helmv3.x没有CRD选项--跳过CRD将在Helmv3.x中删除。部署Istio时,我遇到了相同的问题。所以我做了

kubectl get clusterrole
kubectl get clusterrolebinging
kubectl delete mutatingwebhookconfiguration istio-sidecar-injector
kubectl delete validatingwebhookconfiguration istio-galley
kubectl delete namespace <istio-namespace>
kubectl获取集群角色
kubectl获得群集角色绑定
kubectl删除变异Webhook配置istio侧车喷油器
kubectl delete Validating Webhook配置istio galley
kubectl删除命名空间
当全部删除并启动时,它就工作了。

因此,
--force
或其他选项都不起作用。这是我得到的错误

Release "develop-myrelease" does not exist. Installing it now.
Error: rendered manifests contain a resource that already exists. Unable to continue with install: existing resource conflict: namespace: , name: develop-myrelease, existing_kind: rbac.authorization.k8s.io/v1beta1, Kind=ClusterRoleBinding, new_kind: rbac.authorization.k8s.io/v1beta1, Kind=ClusterRoleBinding
所以我只是删除了clusterrolebinding及其工作

kubectl get clusterrolebinding | grep develop-myrelease
kubectl delete clusterrolebinding develop-myrelease

然后再次运行部署。

如果要升级到头盔3,请确保可以分别运行头盔2和头盔3。范例

helm2 list
helm3 list
在此之后,如果您试图在头盔3中安装一个头盔图表,该错误将弹出,因为它存在于头盔2中

使用helm2to3插件升级到Helm3:


我完全遵循这一点,没有任何问题

我花了很多时间研究与错误相关的错误:

错误:呈现的清单包含已存在的资源

我有3个简单的结论:

1)群集中可能存在以前部署的资源(通过kubectl或helm)

2)使用高级管理/调试工具(如或)查看所有群集资源(而不是
kubectl get
/
helm ls


3)通常情况下,错误中指定的资源名称有一个含义-直接搜索它们并查看它们是否可以删除。

您是否可以将
kubectl get-PodSecurityPolicy的结果-所有名称空间
添加到问题正文?@KamolHasan-请查看我的更新您是否已经在集群中安装了此或类似的图表?你用了什么图表?你用的是Minikube还是Kubeadm?非常感谢,这给了我一些指导。如果我用当前的dir
安装helm图表,就像这样`helm-upgrade--install-mon--namespace-mon-f values.yaml`,在这种情况下我应该如何删除它?我得到了一个类似的错误
helm lint
提出了我必须去解决的问题。谢谢,这个答案解决了我的问题。与CRD有相同的问题。如果我想安装一个带有CRD的图表,它已经存在于我的集群中,helm会失败,错误消息
呈现的清单包含一个已经存在的资源。无法继续安装
。我已经尝试了
--跳过crd
,但没有考虑到,包含crd定义的相应头盔模板必须放在名为
crd
的文件夹中。你的链接让我找到了正确的方向:)
Release "develop-myrelease" does not exist. Installing it now.
Error: rendered manifests contain a resource that already exists. Unable to continue with install: existing resource conflict: namespace: , name: develop-myrelease, existing_kind: rbac.authorization.k8s.io/v1beta1, Kind=ClusterRoleBinding, new_kind: rbac.authorization.k8s.io/v1beta1, Kind=ClusterRoleBinding
kubectl get clusterrolebinding | grep develop-myrelease
kubectl delete clusterrolebinding develop-myrelease
helm2 list
helm3 list