ContainerD Runtime Hatalarını Debug Etme Kılavuzu

ContainerD kullanırken konteyner aniden durabilir, network bağlantısı kesilir ya da kaynak sınırlarına çarpabilirsin. Hata mesajları çoğu zaman belirsiz görünür. Sorunun kökünü bulmak için sistem loglarını, konteyner loglarını ve runtime durumunu kontrol etmen gerekir.

İlk adım ContainerD daemon loglarına bakmak. Sistem tarafından yönetilen loglar genellikle journald'de tutulur.

1sudo journalctl -u containerd -n 50 --no-pager

Beklenen çıktı: Son 50 satırda daemon başlangıcı, plugin yüklemesi ve hata mesajları görünür. Eğer 'failed to start shim' ya da 'OCI runtime error' varsa, runtime kendisi sorunludur.

Belirli bir konteynerin durumunu kontrol et:

1sudo ctr task ls
2sudo ctr task info CONTAINER_ID

Eğer konteyner 'Stopped' durumundaysa, neden durduğunu öğren:

1sudo ctr task logs CONTAINER_ID

Konteyner logları boşsa, işletim sistemi seviyesinde hata var demektir. Cgroup sınırlarını kontrol et:

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası
1sudo cat /sys/fs/cgroup/memory/containerd/CONTAINER_ID/memory.limit_in_bytes
2sudo cat /sys/fs/cgroup/memory/containerd/CONTAINER_ID/memory.usage_in_bytes

Memory limitini aştıysa, konteyner OOM (Out of Memory) sinyali alıp durur. Bunu containerd config dosyasında artırabilirsin. /etc/containerd/config.toml'de memory limitini kontrol et:

1sudo grep -A 5 '\[plugins."io.containerd.grpc.v1.cri"\]' /etc/containerd/config.toml

Network sorunu varsa, konteyner içindeki DNS'i test et:

1sudo ctr run --rm alpine:latest test nslookup google.com

Eğer 'connection refused' alırsan, containerd networking eklentisi (CNI) sorunludur. CNI eklentilerini kontrol et:

1ls -la /opt/cni/bin/

Eğer boşsa, CNI yüklü değil. Kurulum yap:

2sudo tar -xzf cni-plugins-linux-amd64-v1.3.0.tgz -C /opt/cni/bin/

Sık yapılan hata: Runtime shim'i crash ederken, stale process kalabilir. Bunu temizle:

1sudo pkill -9 containerd-shim
2sudo systemctl restart containerd

Debug modunda çalıştırmak isterseniz, containerd config'inde loglevel'i 'debug' yapın ve daemon'u restart edin. Böylece her işlem detaylı kaydedilir.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz