我正在尝试使用kubeadm初始化kubernetes集群。我遵循了这里找到的stacked control plane/etcd nodes的说明。对于container runtime installation,建议运行时(在我的例子中是容器d)和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使用的文本配置文件
发布于 2021-02-28 10:18:11
我的解决方案是使用默认配置重启containerd (没有systemd cgroup),然后像往常一样运行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配置文件,因此我不建议这样做。
https://stackoverflow.com/questions/66404363
复制相似问题