部署Spiffe客户端代理Pod时遭遇containerd启动错误
解决SPIRE Agent Pod启动报错:sleep命令找不到的问题
问题原因
ghcr.io/spiffe/spire-agent:1.5.1 基于轻量级基础镜像构建,默认不包含sleep这类通用系统命令。你的client-deployment.yaml中可能将sleep设为了容器启动命令,或者在存活/就绪探针中使用了sleep,导致容器启动时无法找到该命令。
解决方案
1. 修正Deployment配置中的命令/探针
- 如果是启动命令误用了
sleep:替换为SPIRE Agent的正确启动命令,官方部署的启动命令应为/opt/spire/bin/spire-agent run,检查你的YAML文件是否被误修改。 - 如果是探针中使用了
sleep:改用镜像内存在的命令作为探针检测方式,比如使用SPIRE Agent自带的健康检查命令:livenessProbe: exec: command: - /opt/spire/bin/spire-agent - healthcheck initialDelaySeconds: 5 periodSeconds: 10
2. 确认镜像内可用命令
可以临时运行镜像查看内置命令:
kubectl run -it --rm spire-agent-test --image=ghcr.io/spiffe/spire-agent:1.5.1 --command -- sh
进入容器后,执行ls /opt/spire/bin/可以看到所有SPIRE相关的可执行文件,所有探针或启动命令都应基于这些文件配置。
3. 核对官方部署文件
对照官方指南的原始client-deployment.yaml内容,确保没有自行添加或修改导致命令错误的配置项。
内容的提问来源于stack exchange,提问作者Shubham Gupta
相关产品推荐
相关产品推荐

