Was ist cgroupfs und wie wird es mit Docker verwendet?

15

In der Docker-Dokumentation werden Optionen für den systemeigenen Treiber erläutert ( https://docs.docker.com/engine/reference/commandline/daemon/ ). Die Dokumentation sagt

Die Option native.cgroupdriver gibt die Verwaltung der cgroups des Containers an. Sie können cgroupfs oder systemd angeben. Wenn Sie systemd angeben und es nicht verfügbar ist, verwendet das System cgroupfs. Wenn keine Option angegeben ist, versucht der Exec-Treiber standardmäßig zuerst systemd und greift auf cgroupfs zurück. In diesem Beispiel wird der Treiber auf cgroupfs gesetzt:

Meine Frage ist, was ist cgroupfsund wie ist es systemdin diesem Fall zu vergleichen? Nach Informationen zu googeln, cgroupfsführte zu einem Tweet :

--exec-opt native.cgroupdriver = cgroupfs FTW. Ernsthaft @docker, Drop-Unterstützung für von systemd verwaltete Gruppen. Es ist eine Katastrophe

Aber ich hoffe, jemand kann mehr Details dazu liefern, anstatt nur zu sagen, dass eine andere Einstellung als die Standardeinstellung verwendet wird.

Gabriel Southern
quelle
Sie erkennen, dass dies alles mit der Zuweisung von Systemressourcen (CPU) zu einem Container zu tun hat, oder? In systemd ist die Integration von cgroup integriert. Cgroupfs ist eine Dateisystemansicht der cgroup-Schnittstelle des Kernels. Wenn Sie danach suchen, schreibe ich eine Antwort. Aber wenn Sie das schon wissen, müsste ich mich durch den Code graben.
Otheus
@Otheus Ich habe das Kopfgeld nicht auf die Frage gesetzt, daher bin ich mir nicht sicher, was die Person, die es getan hat, interessiert. Die Hauptsache, die mich dazu motivierte, die Frage zu stellen, war der Wunsch zu verstehen, warum jemand die Option empfohlen hat --exec-opt native.cgroupdriver=cgroupfs. Aber ich vermute, wenn Sie eine Antwort schreiben, in der die Einstellung erläutert wird, die für Anfänger verständlicher ist, als in der Docker-Dokumentation, erhalten Sie einige positive Stimmen, und dies könnte für die Leute hilfreich sein, die die Frage auch in Zukunft von Google finden.
Gabriel Southern

Antworten:

1

Wie ich aus Kommentaren in Quellen ersehen kann, in: vendor/src/github.com/opencontainers/runc/libcontainer/factory_linux.go

// Cgroupfs is an options func to configure a LinuxFactory to return
// containers that use the native cgroups filesystem implementation to
// create and manage cgroups.

cgroupfsscheinen eine eigene docker ( libcontainer) Implementierung zu sein, die Container konfiguriert, die cgroupsdirekt in Dateien schreiben cgroups-file-system(zB gemountet in /sys/fs/cgroup/).

Schnarchen
quelle