kubectl logs <pod-id>
получает последние журналы из моего развертывания - Я работаю над ошибкой и хочу узнать журналы во время выполнения - Как я могу получить непрерывный поток журналов?
редактировать: исправленный вопрос в конце.
kubectl logs <pod-id>
получает последние журналы из моего развертывания - Я работаю над ошибкой и хочу узнать журналы во время выполнения - Как я могу получить непрерывный поток журналов?
редактировать: исправленный вопрос в конце.
Ответы:
kubectl logs -f <pod-id>
Вы можете использовать -f
флаг:
-f, --follow=false: Specify if the logs should be streamed.
https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#logs
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
или начать с того относительного времени назад.
Мне нужно было получить доступ к журналам долго работающего модуля, и я -f
начал потоковую передачу журналов за несколько дней назад, что заняло бы часы, чтобы добраться до того места, где мне нужно было просмотреть (только последние пару минут или около того).
Есть --since=10m
флаг, но он, похоже, не сработал.
Что творило чудеса --tail=100
, где 100
отображать количество последних строк.
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
Если вы хотите получить поток журналов из приложения с несколькими модулями , вы можете использовать kubetail , например:
kubectl get pods
NAME READY STATUS RESTARTS AGE
app2-v31-9pbpn 1/1 Running 0 1d
app2-v31-q74wg 1/1 Running 0 1d
kubetail app2
С этой командой, kubetail является хвостохранилище бревна из - под app2-v31-9pbpn и app2-V31-q74wg
Попробуй это,
хвостовые бревна из контейнеров
kubectl --tail <"количество строк"> журналы <"pod_name">
Пример :
kubectl --tail 100 журналов app_pod
журналы kubctl -f = true [имя-модуля] -c [имя-контейнера]
Если у вас только один контейнер над модулем, имя контейнера не требуется, иначе используйте имя контейнера с параметром -c. -f ie follow по умолчанию ложно. Если вы не установите для него значение true, вы получите снимок журналов вашего контейнера.
Вы можете следить за журналами с помощью -f
kubectl logs -f <pod_name>
Если журналы остановлены, скорее всего, модуль дает сбой, можете ли вы проверить, действительно ли модуль работает или нет? Проверить возраст, возможно, или:
kubectl describe deploy/ds <deploy_or_ds_name>?
Или вы также можете проверить журналы на наличие контейнера внутри модуля, если есть несколько контейнеров.
kubectl -f <pod_name> -c <container_name>