Kubectl logs - непрерывно

kubectl logs <pod-id>

получает последние журналы из моего развертывания - я работаю над ошибкой и интересуюсь журналами во время выполнения. Как я могу получить непрерывный поток журналов?

edit: исправленный вопрос в конце.

Ответ 2

kubectl logs --help поможет вам:

Пример:

# Begin streaming the logs of the ruby container in pod web-1
kubectl logs -f -c ruby web-1

Флаги:

-f, --follow[=false]: Specify if the logs should be streamed.

Вы также можете добавить --since=10m или так начать с того относительного времени назад.

Ответ 3

подождите, пока кубики раскрутятся, затем двигайтесь дальше...

k8s_pod=some_pod
kubectl get pods -w $k8s_pod | while read LOGLINE
do
   [[ "${LOGLINE}" == *"Running"* ]] && pkill -P $$ kubectl
done

хвостовые бревна

for line in $(kubectl get pods | grep $k8s_pod | awk '{print $1}'); do
    kubectl logs -f $line | tee logfile
done

искать индикатор успеха

tail logfile | grep successful! 
RESULT=$?
exit $RESULT

Ответ 4

Мне нужно было получить доступ к журналам давно запущенного модуля, и -f начал потоковую передачу журналов несколько дней назад, что заняло бы часы, чтобы добраться туда, где мне нужно было просмотреть (только последние пару минут или около того).

Есть флаг --since=10m, но мне это не --since=10m.

--tail=100 были --tail=100, где 100 - количество последних отображаемых строк.

Ответ 5

Если вы хотите получить поток логов из многопоточного приложения, вы можете kubetail