【问题标题】:Rancher's helm-operations failRancher 的掌舵操作失败
【发布时间】:2021-03-11 17:21:41
【问题描述】:

我已经使用 helm3 在 microk8s 上安装了新的牧场主,并且 helm 操作会定期失败。我对在哪里看什么一无所知。你能指出我正确的方向吗?

Waiting for Kubernetes API to be available
helm upgrade --history-max=5 --install=true --namespace=rancher-operator-system --reset-values=true --timeout=5m0s --values=/home/shell/helm/values-rancher-operator-crd-0.1.100.yaml --version=0.1.100 --wait=true rancher-operator-crd /home/shell/helm/rancher-operator-crd-0.1.100.tgz
Release "rancher-operator-crd" does not exist. Installing it now.
W1129 15:37:01.028852      39 warnings.go:67] apiextensions.k8s.io/v1beta1 CustomResourceDefinition is deprecated in v1.16+, unavailable in v1.22+; use apiextensions.k8s.io/v1 CustomResourceDefinition
Error: rendered manifests contain a resource that already exists. Unable to continue with install: CustomResourceDefinition "clusters.rancher.cattle.io" 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 "rancher-operator-crd"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "rancher-operator-system"
Waiting for Kubernetes API to be available
helm upgrade --history-max=5 --install=true --namespace=fleet-system --reset-values=true --timeout=5m0s --version=0.3.100 --wait=true fleet-crd /home/shell/helm/fleet-crd-0.3.100.tgz
Release "fleet-crd" does not exist. Installing it now.
W1129 15:36:48.667489      41 warnings.go:67] apiextensions.k8s.io/v1beta1 CustomResourceDefinition is deprecated in v1.16+, unavailable in v1.22+; use apiextensions.k8s.io/v1 CustomResourceDefinition
Error: rendered manifests contain a resource that already exists. Unable to continue with install: CustomResourceDefinition "bundles.fleet.cattle.io" 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 "fleet-crd"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "fleet-system"

也许问题是我用 helm3 安装的?我想用最新的技术,所以我想用helm3。那可能吗?如果没有,是否可以并排使用两个头盔?

【问题讨论】:

  • 当您包含您迄今为止对该主题的研究内容时,人们更有可能(愿意)提供帮助。谷歌搜索揭示了你的问题?你还试图找到解决问题的方法是什么?此外,您应该描述在此错误出现以供其他人重现之前您做了什么。
  • 您能否分享更多关于您如何提升集群的信息?你关注this guide 安装 Rancher 了吗?你能分享更多关于你想升级什么的信息吗? (在您的问题中提及 yaml)

标签: kubernetes kubernetes-helm rancher microk8s


【解决方案1】:

我想我找到了解决方案(至少是 Fleet 部分,但这种方法可能会帮助您解决 rancher-operator 部分)。

基本上:

之后,它创建了缺失的“fleet-local”命名空间、Fleet Cluster 和 Fleet Cluster Group。

来自最新 helm repo 的 Rancher 版本 2.5.7。

参考:https://www.reddit.com/r/rancher/comments/md963s/rancher_25_inside_docker_desktop_single_node/

【讨论】:

    【解决方案2】:

    我不熟悉从 Helm 为 Rancher 启动 Kubernetes,但由于它说它因资源已经存在和所有权无效而失败,可能是至少一个主机节点上存在冲突,因此安装是不是 100% 新鲜的。

    由于您正在尝试全新安装,因此是否从每个节点清除与 Kubernetes 相关的所有内容都无关紧要。

    这是cleaning cluster nodes 的文档。通常,我会在这里的回答中解释该链接文档中的内容,但它相当长。它的核心是:

    • 清除所有牧场主组件(手动或通过运行cleanup script
      • 如果它没有达到那么远,您可能不需要该部件,但应该检查一下
    • 删除所有(相关的,或只是所有的)容器、图像和卷
      • docker container rm ...
      • docker image rm ...
      • docker volume rm ...
    • 移除坐骑
      • for mount in $(mount | grep tmpfs | grep '/var/lib/kubelet' | awk '{ print $3 }') /var/lib/kubelet /var/lib/rancher; do umount $mount; done
    • 删除目录和文件
      •   sudo rm -Rf /etc/ceph \
              /etc/cni \
              /etc/kubernetes \
              /opt/cni \
              /opt/rke \
              /run/secrets/kubernetes.io \
              /run/calico \
              /run/flannel \
              /var/lib/calico \
              /var/lib/etcd \
              /var/lib/cni \
              /var/lib/kubelet \
              /var/lib/rancher/rke/log \
              /var/log/containers \
              /var/log/kube-audit \
              /var/log/pods \
              /var/run/calico
        
    • 最后,重启
      • 这将清除已使用的非持久网络接口

    在删除旧的挂载目录或容器时遇到问题,我的笔记中有这些额外内容。

    使用它来帮助确定有问题的过程和 然后手动执行卸载操作。

    grep "docker" /proc/*/mountinfo | grep "${SOME_CONTAINER_HASH}" | awk '{ print $1; }' | perl -p -e 's:^/proc/(\d+)/.*$:\1:' | sort -n | uniq
    

    然后

    ps -p "${PROBLEM_PID}"
    

    【讨论】:

      猜你喜欢
      • 2019-03-15
      • 1970-01-01
      • 2017-04-08
      • 2018-12-11
      • 1970-01-01
      • 2019-10-07
      • 1970-01-01
      • 2018-06-02
      • 2020-11-07
      相关资源
      最近更新 更多