Крюк жизненного цикла postStart Kubernetes вышел из 7 - PullRequest
0 голосов
/ 05 марта 2020

У меня есть простой 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 вызывает его.

И если я войду в контейнер, я могу без проблем выполнить сценарий из оболочки.

Сценарий просто выполняет простой вызов 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"]

В чем здесь может быть проблема?

1 Ответ

2 голосов
/ 05 марта 2020

Код выхода Curl 7, как правило, «не может подключиться», поэтому ваш IP, вероятно, неверен или агент kiam настроен неправильно.

...