AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1061205
Accepted
Antoine
Antoine
Asked: 2021-04-23 04:46:34 +0800 CST2021-04-23 04:46:34 +0800 CST 2021-04-23 04:46:34 +0800 CST

从 docker 迁移到 containerd 后 kubeadm 中的警告

  • 772

我运行一个 Kubernetes 集群,安装了kubeadm. 我最近从 1.19 升级到 1.20 并将容器运行时从 迁移docker到containerd,因为docker现在已弃用。

我配置containerd并kubelet使用它,并docker从所有节点卸载。一切似乎都运行良好。

今天,我尝试从 1.20 升级到 1.21,但运行时收到两个警告,kubeadm upgrade plan这让我认为containerd过渡尚未完成:

  • 它尝试使用 docker:

    cannot automatically set CgroupDriver when starting the Kubelet: cannot execute 'docker info -f {{.CgroupDriver}}': executable file not found in $PATH
    
    • 我可能有一个配置问题,因为kubeadm似乎不知道我们不再使用 docker,但是我没有在文档或本地 conf 中找到正确的选项,除非--cri-socket它不适用于kubeadm upgrade.
    • 其次,措辞很奇怪:“启动 Kubelet 时”。但是我的 kubelet 启动得很好,不会抱怨缺少 docker 或 CgroupDriver。
  • 它不检测 cgroup 驱动程序设置:

    The 'cgroupDriver' value in the KubeletConfiguration is empty. Starting from 1.22, 'kubeadm upgrade' will default an empty value to the 'systemd' cgroup driver. The cgroup driver between the container runtime and the kubelet must match!
    

    这真的很令人惊讶,因为我有cgroupDriver: systemdin kubectl -n kube-system get cm kubelet-config-1.20 -o yaml,in , and中/var/lib/kubelet/config.yaml还有标志,它甚至被打印出来了!/etc/default/kubelet/var/lib/kubelet/kubeadm-flags.envkubeadm --v=10

如何确定是否存在潜在的配置问题,或者我是否可以安全地忽略这些警告?

我不确定哪些文件、configmap 或日志可能对帮助我解决这个问题有用,但如果需要,我很乐意提供它们。

docker kubernetes kubeadm containerd
  • 1 1 个回答
  • 795 Views

1 个回答

  • Voted
  1. Best Answer
    Antoine
    2021-04-23T07:46:23+08:002021-04-23T07:46:23+08:00

    虽然这被否决了,但如果有人遇到同样的问题并且和我一样感到迷茫,我希望谷歌能把你带到这里:)

    • kubeadm试图docker基于节点的配置而不是 kubelet 的配置来使用,并且在迁移到时我没有更改节点的配置containerd(因为我不知道它是在那个级别设置的)。修复:

      kubectl annotate node $node --overwrite kubeadm.alpha.kubernetes.io/cri-socket=unix:///run/containerd/containerd.sock
      

      对于每个节点。在这里找到这个

    • 该cgroupDriver警告是一个错误,kubeadm可能无法修复,因为整个检查很快就会消失。所以可以忽略(如果你的 kubelet 的 conf 真的设置了 cgrouDriver)。

    • 2

相关问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve