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-pagerBeklenen çı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 ls2sudo ctr task info CONTAINER_IDEğer konteyner 'Stopped' durumundaysa, neden durduğunu öğren:
1sudo ctr task logs CONTAINER_IDKonteyner logları boşsa, işletim sistemi seviyesinde hata var demektir. Cgroup sınırlarını kontrol et:
1sudo cat /sys/fs/cgroup/memory/containerd/CONTAINER_ID/memory.limit_in_bytes2sudo cat /sys/fs/cgroup/memory/containerd/CONTAINER_ID/memory.usage_in_bytesMemory 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.tomlNetwork sorunu varsa, konteyner içindeki DNS'i test et:
1sudo ctr run --rm alpine:latest test nslookup google.comEğ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-shim2sudo systemctl restart containerdDebug 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.
0 yorum