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
यदि आप मल्टी पॉड ऐप से लॉग की स्ट्रीम प्राप्त करना चाहते हैं, तो आप कुबेटेल का उपयोग कर सकते हैं , उदाहरण:
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 <"लाइनों की संख्या"> लॉग <"pod_name">
उदाहरण :
kubectl - 100 लॉग app_pod
आप -f के साथ लॉग का पालन कर सकते हैं
kubectl logs -f <pod_name>
यदि लॉग को सबसे अधिक रोका जाता है, तो पॉड दुर्घटनाग्रस्त हो जाता है, क्या आप जांच सकते हैं कि पॉड वास्तव में चल रहा है या नहीं? शायद उम्र की जाँच करें या:
kubectl describe deploy/ds <deploy_or_ds_name>?
या आप पॉड के अंदर कंटेनर के लिए लॉग की भी जांच कर सकते हैं जिसमें कई कंटेनर हैं
kubectl -f <pod_name> -c <container_name>