我有一个简单的bash脚本要在postStart执行,但我得到了一个根本没有信息的错误:
Exec lifecycle hook ([/bin/bash -c sleep 30;/xcom/scripts/sidecar_postStart.sh]) for Container "perfcibuddy" in Pod "xcomapp-597fb859c5-6r4g2_ns(412852d1-5eea-11ea-b641-0a31ddb9a71e)" failed - error: command '/bin/bash -c sleep 120;/xcom/scripts/sidecar_postStart.sh' exited with 7: , message: ""
睡眠之所以存在,是因为我得到了一个提示,可能存在竞争条件,在Kubernetes调用脚本时脚本还没有到位。
如果我登录到容器,我可以从shell执行脚本,而不会有任何问题。
这个脚本只是做一个简单的curl调用(IP显然经过了净化(:
# ----------------------------------------------------------------------------
# Script to perform postStart lifecycle hook triggered actions in container
# ----------------------------------------------------------------------------
# -------------------------------------------[ get token from Kiam server ]---
role_name=$( curl -s http://1.1.1.1/latest/meta-data/iam/security-credentials/ )
curl -s http://1.1.1.1/latest/meta-data/iam/security-credentials/${role_name}
我尝试了许多形式来设置模板中的命令(所有内容都用引号,用&&代替;(,这是当前的一个:
exec:
command: [/bin/bash, -c, "sleep 120;/xcom/scripts/sidecar_postStart.sh"]
这里可能有什么问题?
Curl退出代码7通常是"无法连接",因此您的IP可能是错误的,或者kiam代理设置不正确。