Kubespray 覆盖 kubelet.service 中 Sysbox 修改的问题

Kubespray 覆盖 kubelet.service 中 Sysbox 修改的问题

描述

在使用 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 使用,从而导致失败。

重现步骤

  1. 使用 Kubespray 部署 Kubernetes 集群。
  2. 使用提供的命令集成 Sysbox。
  3. 在 Sysbox 安装期间,观察 kubelet.service 文件中 $KUBELET_CRIO_ARGS 的添加。
  4. 重新运行 Kubespray 剧本,导致删除 Sysbox 修改。

预期行为

我预计 Kubespray 剧本应该避免覆盖或删除 Sysbox 在安装期间所做的调整,从而确保 Sysbox 可供 pod 持续使用。

附加信息

  • Kubernetes 版本:v1.28.6
  • Kubespray 版本:release-2.24
  • 单节点集群

我非常感谢任何关于防止 Kubespray 剧本撤消 Sysbox 安装所做的修改的见解或建议。

相关内容