kubectl logs <pod-id>
dağıtımımdan en son günlükleri alıyor - Bir hata üzerinde çalışıyorum ve çalışma zamanında günlükleri bilmekle ilgileniyorum - Günlüklerin sürekli akışını nasıl elde edebilirim?
düzenleme: sonunda düzeltilmiş soru.
kubectl logs <pod-id>
dağıtımımdan en son günlükleri alıyor - Bir hata üzerinde çalışıyorum ve çalışma zamanında günlükleri bilmekle ilgileniyorum - Günlüklerin sürekli akışını nasıl elde edebilirim?
düzenleme: sonunda düzeltilmiş soru.
Yanıtlar:
kubectl logs -f <pod-id>
-f
Bayrağı kullanabilirsiniz :
-f, --follow=false: Specify if the logs should be streamed.
https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#logs
kubectl logs --help
size rehberlik edecek:
Misal:
# Begin streaming the logs of the ruby container in pod web-1
kubectl logs -f -c ruby web-1
Bayraklar:
-f, --follow[=false]: Specify if the logs should be streamed.
Ayrıca --since=10m
bu göreceli zaman öncesine kadar ekleyebilirsiniz .
Uzun süredir çalışan bir kapsülün -f
günlüklerine erişmem gerekiyordu ve günler öncesinden günlükleri akışa almaya başladım, bu da görüntülemem gereken yere ulaşmak için saatler alacaktı (sadece son birkaç dakika kadar).
Bir --since=10m
bayrak var ama bu bende işe yaramadı.
Harikalar yaratan şey --tail=100
, 100
görüntülenecek son satırların nerede olduğuydu .
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
Çok bölmeli bir uygulamadan günlük akışını almak istiyorsanız, kubetail'i kullanabilirsiniz , örneğin:
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
O komutla, kubetail edilir atık pod günlükleri app2-v31-9pbpn ve app2-v31-q74wg
Bunu dene,
kapsüllerden kuyruk günlükleri
kubectl --tail <"satır sayısı"> günlükler <"pod_name">
Örnek :
kubectl --tail 100 günlük app_pod
Günlükleri -f ile takip edebilirsiniz
kubectl logs -f <pod_name>
Günlükler durdurulmuşsa, büyük olasılıkla bölme kilitleniyorsa, bölmenin gerçekten çalışıp çalışmadığını kontrol edebilir misiniz? Belki yaşı kontrol edin veya:
kubectl describe deploy/ds <deploy_or_ds_name>?
Veya birden fazla kapsayıcıda kapsayıcı içindeki kapsayıcı için günlükleri de kontrol edebilirsiniz.
kubectl -f <pod_name> -c <container_name>
kubctl günlükleri -f = true [kapsül adı] -c [kapsayıcı adı]
Kapsül üzerinde yalnızca tek bir kabınız varsa, kapsayıcı adı gerekli değildir, yoksa kap adını -c seçeneğiyle kullanın. -f ie follow varsayılan olarak yanlıştır. Doğru olarak ayarlamazsanız, kapsayıcı günlüklerinizin anlık görüntüsünü alırsınız.