微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

kubeadm init --config 问题

如何解决kubeadm init --config 问题

我正在尝试使用 kubeadm 初始化一个 kubernetes 集群。我按照此处为 stacked control plane/etcd nodes 找到的说明进行操作。对于 container runtime installation,建议运行时(在我的情况下,containerd)和 kubelet 使用相同的 cgroup 驱动程序(在我的情况下,systemd)。

仍然按照说明,我添加

[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
    ...
    [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
       SystemdCgroup = true

/etc/containerd/config.toml,然后使用sudo systemctl restart containerd

重新启动containerd

到目前为止一切顺利,一切都按预期进行。然后我到了我必须configure cgroup driver used by kubelet的部分。它说我必须使用配置文件调用 kubeadm init。类似:sudo kubeadm init --config.yaml。这是我的问题:我发现关于该配置文件应该是什么样子的信息很少。文档说 kubeadm config print init-defaults 应该打印认配置,但认配置与我的设置无关(即,它使用 docker 而不是 containerd)。我找到了一个文件 here 的示例,但到目前为止我还没有设法使其适应我的设置,而且我发现很少有文档可以这样做。必须有一种更简单的方法,而不仅仅是为了一个属性更改而重写整个配置文件,对吗?为什么我无法打印 kubeadm init 使用的文字配置文件

解决方法

我的解决方案是使用默认配置(无 systemd cgroup)重新启动 containerd,然后像往常一样运行 kubeadm init。集群启动后,我将配置打印到一个文件中:kubeadm config view。然后我修改了该文件以添加所需的参数来设置 systemd cgroup。最后,我将 containerd 配置为使用 systemd 并使用新创建的配置文件运行 kubeadm init。一切正常。

警告:命令 kubeadm config view 表示不推荐使用“view”命令并使用 kubectl get cm -o yaml -n kube-system kubeadm-config,但是该命令的输出没有创建有效的 kubeadm 配置文件,所以我不不建议这样做。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。