web-dev-qa-db-ja.com

kubectlログ-継続的に

kubectl logs <pod-id>

私の展開から最新のログを取得します-バグに取り組んでいて、実行時にログを知りたいと思っています-ログの連続ストリームを取得するにはどうすればよいですか?

編集:最後に修正された質問。

60
npr
kubectl logs -f <pod-id>

-fフラグを使用できます:

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

http://kubernetes.io/docs/user-guide/kubectl/kubectl_logs/

113
Yu-Ju Hong

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を追加することもできます。そのため、その相対的な時間前から開始することもできます。

17
manojlds

キューブがポッドをスピンアップするのを待ってから先に進みます...

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
3
ddtraveller

長時間実行されているポッドのログにアクセスする必要があり、-fは数日前からログのストリーミングを開始しました。

--since=10mフラグがありますが、それはうまくいかないようです。

驚いたのは--tail=100で、100は表示する最近の行数です。

1
Harsha Goli

マルチポッドアプリからログのストリームを取得する場合は、 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はtailingポッドからのログapp2-v31-9pbpnand app2-v31-q74wg

0
db80