eBPF und Container-Runtimes: Verbindung über CRI
Dieser Artikel untersucht, wie Open-Source-eBPF-Projekte mithilfe der Container Runtime Interface (CRI) eine Verbindung zu Container-Runtimes (CR) herstellen, um den Kontext mit Pod- und Containerinformationen anzureichern. Der Verbindungsprozess wird detailliert beschrieben: Lokalisieren der Unix-Socket-Datei, Herstellen einer gRPC-Verbindung über die CRI-API und Abfragen von Informationen. Beispiele aus Tetragon, crictl und Tracee veranschaulichen verschiedene Ansätze zur Verbindung mit dem CR, einschließlich hartcodierter Standard-Socket-Pfade und Verbindungsversuche zur Laufzeit. Schließlich wird gezeigt, wie Containerinformationen wie cgroup-Pfade über die CRI-API abgefragt werden, beispielsweise die Methode von Tetragon zum Abrufen des cgroup-Pfads eines Containers.