首页 > 解决方案 > Rancher 的掌舵操作失败

问题描述

我已经使用 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。那可能吗?如果没有,是否可以并排使用两个头盔?

标签: kuberneteskubernetes-helmranchermicrok8s

解决方案


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

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

这是清理集群节点的文档。通常,我会在这里的回答中解释该链接文档中的内容,但它相当长。它的核心是:

  • 清除所有牧场主组件(手动或通过运行清理脚本
    • 如果它没有那么远,你可能不需要那个部分,但应该检查一下
  • 删除所有(相关的,或简单的)容器、图像和卷
    • 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}"

推荐阅读