kubernetes - kubeadm init --config 问题
问题描述
我正在尝试使用 kubeadm 初始化一个 kubernetes 集群。我按照此处找到的堆叠控制平面/etcd 节点的说明进行操作。对于容器运行时安装,建议运行时(在我的情况下为 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
到目前为止一切顺利,一切都按预期工作。然后我到了必须配置 kubelet 使用的 cgroup 驱动程序的部分。它说我必须使用配置文件调用 kubeadm init。类似的东西:sudo kubeadm init --config.yaml
。这是我的问题:我发现关于该配置文件应该是什么样子的信息很少。文档说kubeadm config print init-defaults
应该打印默认配置,但默认配置与我的设置无关(即,它使用 docker 而不是 containerd)。我在这里找到了一个文件示例,但到目前为止,我还没有设法使其适应我的设置,而且我发现的文档很少。必须有一种比仅仅为了一个属性更改而重写整个配置文件更简单的方法,对吧?为什么我不能打印使用的文字配置文件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 配置文件,所以我不建议这样做。
推荐阅读
- php - “可观察”类型上不存在属性“订阅”
' 在离子 3 - ruby-on-rails - 在我的本地主机上运行 RoR 项目的最佳方式是什么
- arduino - Cytron esp8266 Wifi Shield 无线连接并传输数据到 xampp localhost
- vhdl - 多次使用 KCPSM3 (picoBlaze)
- python-3.x - 如何从具有特定概率的状态空间中选择元素?
- azure - 将 Office 365 AD 租户与 AZURE AD 关联
- node.js - create-react-app 命令中止安装 为什么?
- c++ - 如何将结构变量初始化为默认值?
- css - CSS 过渡比例() - 奇怪的延迟
- javascript - document.getElementById 的变量顺序和 ID 的问题