GNU/Linux >> Znalost Linux >  >> Linux

docker změnit ovladač cgroup na systemd

Řešením, které nezahrnuje úpravu systémových jednotek nebo zásuvných modulů, by bylo vytvořit (nebo upravit) soubor /etc/docker/daemon.json konfigurační soubor a zahrnout následující:

{
  "exec-opts": ["native.cgroupdriver=systemd"]
}

Po uložení restartujte službu dockeru.

sudo systemctl restart docker

Toto řešení je samozřejmě proveditelné pouze v případě, že byste jej chtěli použít v celém systému.


Protože mám dva konfigurační soubory, musím také přidat položku do druhého konfiguračního souboru -- /etc/systemd/system/docker.service.d/docker-thinpool.conf :

--exec-opt native.cgroupdriver=systemd \

Jen pro doplnění, cgroupfs je správce vlastní řídicí skupiny dockerů. Nicméně pro většinu linuxových distribucí je nyní ssytemd výchozím iniciačním systémem a systemd má úzkou integraci s ovládacími skupinami Linuxu a na webu Kubernetes doporučují používat systemd (viz níže), protože použití cgroupfs spolu s systemd se zdá být neoptimální

Takže je lepší použít systemd než pro správu cgroup. kubelet je ve výchozím nastavení nakonfigurován pro použití systemd. Je tedy jednodušší a lepší změnit Docker tak, aby používal ovladač systemd Cgroup

Historie tohoto překrývání je zde https://lwn.net/Articles/676831/

Na webu Kubernetes doporučují používat systemd https://kubernetes.io/docs/setup/production-environment/container-runtimes/

Ovladače Cgroup Když je systemd vybrán jako init systém pro linuxovou distribuci, proces init generuje a využívá kořenovou řídicí skupinu (cgroup) a funguje jako správce cgroup. Systemd má úzkou integraci s cgroups a bude alokovat cgroups pro proces. Je možné nakonfigurovat běhový modul kontejneru a kubelet na usecgroupfs. Použití cgroupfs vedle systemd znamená, že pak budou existovat dva různí správci cgroup.

Kontrolní skupiny se používají k omezení zdrojů, které jsou přiděleny procesům. Jediný správce cgroup zjednoduší pohled na to, jaké zdroje jsou přidělovány, a ve výchozím nastavení bude mít konzistentnější pohled na dostupné a používané zdroje. Když máme dva manažery, skončíme se dvěma pohledy na tyto zdroje. Viděli jsme případy v oboru, kdy se uzly, které jsou nakonfigurovány pro použití cgroupfs pro kubelet a Docker, a systemd pro zbytek procesů běžících na uzlu, stanou nestabilními pod tlakem zdrojů.


Linux
  1. Jak změnit výchozí IP adresu docker bridge

  2. Jak změnit časové pásmo pro kontejner Docker

  3. Jak změnit cestu protokolu auditu v MySQL Docker

  1. Jak změnit úrovně běhu/cíle pomocí systemd v Ubuntu

  2. Upgrade Dockeru na Amazon Linux AMI

  3. pomocí časovačů systemd místo cronu

  1. Změnit hesla

  2. Jak změnit uživatele pro spoustu souborů služby Systemd?

  3. Změnit Docker Root Dir na Red Hat Linuxu?