kubectl logs <pod-id>
私の展開から最新のログを取得します-バグに取り組んでいて、実行時にログを知りたいと思っています-ログの連続ストリームを取得するにはどうすればよいですか?
編集:最後に修正された質問。
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
フラグがありますが、それはうまくいかないようです。
驚いたのは--tail=100
で、100
は表示する最近の行数です。
マルチポッドアプリからログのストリームを取得する場合は、 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