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 <"no of lines"> журнали <"ім'я_поділка">
Приклад :
kubectl --tail 100 журналів app_pod
Ви можете стежити за журналами за допомогою -f
kubectl logs -f <pod_name>
Якщо журнали зупинені, швидше за все, модуль аварійно завершує роботу, чи можете ви перевірити, чи працює він насправді чи ні? Перевірте вік, можливо, або:
kubectl describe deploy/ds <deploy_or_ds_name>?
Або ви також можете перевірити журнали на наявність контейнера всередині капсули, оскільки є кілька контейнерів
kubectl -f <pod_name> -c <container_name>
журнали kubctl -f = true [ім'я-ім'я] -c [ім'я контейнера]
Якщо у вас є лише один контейнер над модулем, ім'я контейнера не потрібно, інакше використовуйте ім'я контейнера з опцією -c. -f тобто слід за замовчуванням хибний. Якщо ви не встановите значення true, ви отримаєте знімок журналів контейнерів.