Container in Kubernetes werden mithilfe von zwei Hauptelementen des Linux-Kernels isoliert: Control Groups (cgroups) und Namespaces.
Control Groups, auch bekannt als cgroups, sind ein Feature des Linux-Kernels, das zur Begrenzung und Isolierung der Ressourcennutzung (CPU, Arbeitsspeicher, Netzwerkbandbreite, Disk-I/O etc.) für Prozessgruppen dient.
Namespaces sind ein weiteres Feature des Linux-Kernels, das zur Isolierung der Systemressourcen zwischen Prozessen dient. Sie erlauben es, dass verschiedene Prozesse ihre eigene isolierte Ansicht auf das System haben, einschließlich der Prozess-ID-Nummern, der Netzwerkressourcen und der Dateisystemhierarchie. Ein typisches Beispiel für die Nutzung von Namespaces in Kubernetes ist die Sichtbarkeit. Jeder Pod in Kubernetes hat seinen eigenen Netzwerknamespace, was bedeutet, dass ein Pod nur die Netzwerkressourcen sehen kann, die zu seinem eigenen Namespace gehören.
In Kombination ermöglichen Control Groups und Namespaces in Kubernetes die effiziente und sichere Ausführung von Containern, indem sie gewährleisten, dass jeder Container nur Zugriff auf die ihm zugewiesenen Ressourcen hat und die Systemressourcen effektiv zwischen den Containern aufgeteilt werden.