[kubernetes] kubectl 로그-연속

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표시 할 최근 줄의 수는 어디에 있습니까 ?


답변

kubes가 포드를 회전시킬 때까지 기다린 다음 계속 진행하십시오.

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을


답변

-f로 로그를 추적 할 수 있습니다.

kubectl logs -f <pod_name>

로그가 중지 된 경우 포드가 충돌하는 것 같습니다. 포드가 실제로 실행 중인지 확인할 수 있습니까? 나이를 확인하거나 :

kubectl describe deploy/ds <deploy_or_ds_name>?

또는 여러 컨테이너가있는 포드 내부의 컨테이너에 대한 로그를 확인할 수도 있습니다.

kubectl logs -f <pod_name> -c <container_name>


답변

이 시도,

포드의 테일 로그

kubectl –tail < “no of lines”> 로그 < “pod_name”>

:

kubectl –tail 100 개의 로그 app_pod