cilium的调试模式
目录
概述
测试 Cilium 的时候,经常会部署完 cilium-agent 的 DaemonSet 之后,手动修改 DaemonSet 里关于 cilium-agent 的启动命令,一般会改成 sleep inf
来避免容器直接启动 cilium-agent,这样可以方便后面的调试,比如修改一些环境变量或者直接修改源码重新编译 cilium-agent 的二进制,就可以不用重头到位构建新的 Cilium 的镜像。之前想过为了节省时间,可以修改一下 Cilium Helm Chart 提供一个选项来自动打开这个开关,但是后面细看了一下官方的 Helm Chart,发现官方其实已经提供了这样的选项。
调试参数
|
|
查看 cilium-agent 的 DaemonSet 的模板,可以在 helm install
的时候,加入配置 sleepAfterInit=true
,这样 cilium-agent 启动的时候,还会将 livenessProbe 和 readinessProbe 探针置为 true
,避免容器重启,如下。
|
|
需要注意的是,如果通过 sleepAfterInit
休眠了 cilium-agent 的容器,如果想在容器内执行 /usr/bin/cilium-agent -- --config-dir=/tmp/cilium/config-map
,是会有一些问题的,最主要就是容器的被配置的 securityContext
是有限制的,但是 cilium-agent 启动的时候是需要去越权做些事情的,因此正常来说就算是 sleepAfterInit
,在容器内都是无法正常启动 cilium-agent 的,所以靠 sleepAfterInit
没法直接意做一些 debug 的动作。
其他的Debug技巧
|
|
参考资料
警告
本文最后更新于 2023年11月12日,文中内容可能已过时,请谨慎参考。