kubectl logs <pod-id>
получает последние журналы из моего развертывания - я работаю над ошибкой и интересуюсь журналами во время выполнения. Как я могу получить непрерывный поток журналов?
edit: исправленный вопрос в конце.
kubectl logs <pod-id>
получает последние журналы из моего развертывания - я работаю над ошибкой и интересуюсь журналами во время выполнения. Как я могу получить непрерывный поток журналов?
edit: исправленный вопрос в конце.
kubectl logs -f <pod-id>
Вы можете использовать флаг -f
:
-f, --follow=false: Specify if the logs should be streamed.
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
или так начать с того относительного времени назад.
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
Мне нужно было получить доступ к журналам давно запущенного модуля, и -f
начал потоковую передачу журналов несколько дней назад, что заняло бы часы, чтобы добраться туда, где мне нужно было просмотреть (только последние пару минут или около того).
Есть флаг --since=10m
, но мне это не --since=10m
.
--tail=100
были --tail=100
, где 100
- количество последних отображаемых строк.
Если вы хотите получить поток логов из многопоточного приложения, вы можете kubetail