kubectl logs <pod-id>
nhận nhật ký mới nhất từ quá trình triển khai của tôi - Tôi đang sửa lỗi và muốn biết nhật ký trong thời gian chạy - Làm cách nào để có được luồng nhật ký liên tục?
sửa: câu hỏi đã sửa ở cuối.
Câu trả lời:
kubectl logs -f <pod-id>
Bạn có thể sử dụng -f
cờ:
-f, --follow=false: Specify if the logs should be streamed.
https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#logs
kubectl logs --help
sẽ hướng dẫn bạn:
Thí dụ:
# Begin streaming the logs of the ruby container in pod web-1
kubectl logs -f -c ruby web-1
Cờ:
-f, --follow[=false]: Specify if the logs should be streamed.
Bạn cũng có thể thêm --since=10m
hoặc bắt đầu từ thời điểm tương đối trước đó.
Tôi cần truy cập nhật ký của một nhóm đang hoạt động dài và -f
bắt đầu phát trực tuyến nhật ký từ nhiều ngày trước, điều này sẽ mất hàng giờ để đến nơi tôi cần xem (chỉ vài phút cuối cùng hoặc lâu hơn).
Có một --since=10m
lá cờ, nhưng điều đó dường như không hiệu quả với tôi.
Điều kỳ diệu là --tail=100
, 100
số dòng gần đây được hiển thị ở đâu.
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
Nếu bạn muốn nhận luồng nhật ký từ một ứng dụng nhiều nhóm, bạn có thể sử dụng kubetail , ví dụ:
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
Với lệnh đó, kubetail được tailing các bản ghi từ pod app2-v31-9pbpn và app2-V31-q74wg
Thử đi,
nhật ký đuôi từ vỏ
kubectl --tail <"no of lines"> nhật ký <"pod_name">
Ví dụ :
kubectl --tail 100 bản ghi app_pod
kubctl logs -f = true [pod-name] -c [container-name]
Nếu bạn chỉ có một vùng chứa duy nhất trên nhóm, tên vùng chứa là không cần thiết, hãy sử dụng tên vùng chứa với tùy chọn -c. -f tức là theo mặc định là sai. Nếu bạn không đặt nó thành true, bạn sẽ nhận được ảnh chụp nhanh các nhật ký vùng chứa của mình.
Bạn có thể theo dõi nhật ký với -f
kubectl logs -f <pod_name>
Nếu các bản ghi bị dừng, rất có thể nhóm đang bị lỗi, bạn có thể kiểm tra xem nhóm có thực sự đang chạy hay không? Kiểm tra độ tuổi có thể hoặc:
kubectl describe deploy/ds <deploy_or_ds_name>?
Hoặc bạn cũng có thể kiểm tra nhật ký xem vùng chứa bên trong pod có nhiều vùng chứa không
kubectl -f <pod_name> -c <container_name>