Che cos'è cgroupfs e come viene utilizzato con Docker?


16

Nella documentazione Docker c'è una discussione sulle opzioni per il programma di esecuzione nativo ( https://docs.docker.com/engine/reference/commandline/daemon/ ). La documentazione dice

L'opzione native.cgroupdriver specifica la gestione dei cgroup del contenitore. È possibile specificare cgroupfs o systemd. Se si specifica systemd e non è disponibile, il sistema utilizza cgroupfs. Per impostazione predefinita, se non viene specificata alcuna opzione, il programma di esecuzione prova prima systemd e torna a cgroupfs. Questo esempio imposta execdriver su cgroupfs:

La mia domanda è: cos'è cgroupfse come si confronta systemdin questo caso? Cercare su Google informazioni su ha cgroupfsportato a un tweet :

--exec-opt native.cgroupdriver = cgroupfs FTW. seriamente @docker, elimina il supporto per i cgroup gestiti da systemd, è un disastro

Ma spero che qualcuno possa fornire maggiori dettagli su ciò che fa effettivamente piuttosto che dire semplicemente di usare un'impostazione diversa da quella predefinita.


Ti rendi conto che tutto ciò ha a che fare con l'allocazione delle risorse di sistema (CPU) a un contenitore, giusto? systemd ha l'integrazione cgroup integrata. Cgroupfs è una vista del file system dell'interfaccia cgroup del kernel. Se questo è quello che stai cercando, lo inserirò in una risposta. Ma se lo sai già, dovrei scavare nel codice.
Otheus

@Otheus Non ho posto la generosità sulla domanda, quindi non sono sicuro di ciò che la persona che ha fatto è interessato. La cosa principale che mi ha motivato a porre la domanda era il desiderio di capire perché qualcuno mi ha consigliato di utilizzare l'opzione --exec-opt native.cgroupdriver=cgroupfs. Ma ho il sospetto che se hai scritto una risposta spiegando l'impostazione che è più facile da capire per un principiante rispetto a ciò che è nella documentazione Docker che otterrai alcuni voti e potrebbe essere utile per le persone a trovare la domanda da Google in futuro.
Gabriel Southern

Risposte:


1

Come posso vedere dal commento nelle fonti 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.

cgroupfssembra essere la propria libcontainerimplementazione docker ( ) che configura i contenitori cgroupsscrivendo direttamente su file cgroups-file-system(ad esempio montati /sys/fs/cgroup/).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.