描述
在使用 Kubespray(release-2.24)部署 Kubernetes 集群(v1.28.6)并集成 Sysbox 时,我遇到了一个挑战。Sysbox 集成是使用以下命令执行的:
kubectl label nodes node1 sysbox-install=yes
kubectl apply -f https://raw.githubusercontent.com/nestybox/sysbox/master/sysbox-k8s-manifests/sysbox-install.yaml
最初,journalctl -eu kubelet-config-helper 报告了 No Kubelet systemd file could be classified for exec-line 错误,我通过修改 /usr/local/bin/kubelet-config-helper.sh 脚本解决了这个问题,特别是对 kubelet.service 路径进行了硬编码。
然而,又出现了一个新问题,Sysbox 安装过程中修改了 kubelet.service 文件,添加了 $KUBELET_CRIO_ARGS,重新运行 Kubespray playbook 后,Sysbox 所做的修改会被覆盖,导致 Sysbox 无法供 Pod 使用,从而导致失败。
重现步骤
- 使用 Kubespray 部署 Kubernetes 集群。
- 使用提供的命令集成 Sysbox。
- 在 Sysbox 安装期间,观察 kubelet.service 文件中 $KUBELET_CRIO_ARGS 的添加。
- 重新运行 Kubespray 剧本,导致删除 Sysbox 修改。
预期行为
我预计 Kubespray 剧本应该避免覆盖或删除 Sysbox 在安装期间所做的调整,从而确保 Sysbox 可供 pod 持续使用。
附加信息
- Kubernetes 版本:v1.28.6
- Kubespray 版本:release-2.24
- 单节点集群
我非常感谢任何关于防止 Kubespray 剧本撤消 Sysbox 安装所做的修改的见解或建议。