CGroup Namespace
Temel Bilgiler
Cgroup namespace, bir namespace içinde çalışan süreçler için cgroup hiyerarşilerinin izolasyonunu sağlayan bir Linux çekirdek özelliğidir. Cgroups, kontrol grupları için kısaltmadır ve süreçleri hiyerarşik gruplar halinde organize ederek sistem kaynakları üzerinde (CPU, bellek ve I/O gibi) sınırlamalar yönetmeyi ve uygulamayı sağlar.
Cgroup namespace'leri, daha önce tartıştığımız diğer namespace türleri (PID, mount, network vb.) gibi ayrı bir namespace türü olmasa da, namespace izolasyonu kavramıyla ilişkilidir. Cgroup namespace'leri, cgroup hiyerarşisinin görünümünü sanallaştırır, böylece bir cgroup namespace içinde çalışan süreçler, ana makinede veya diğer namespace'lerde çalışan süreçlere kıyasla hiyerarşinin farklı bir görünümüne sahip olur.
Nasıl çalışır:
Yeni bir cgroup namespace oluşturulduğunda, oluşturan sürecin cgroup'una dayanan bir cgroup hiyerarşisi görünümü ile başlar. Bu, yeni cgroup namespace içinde çalışan süreçlerin, yalnızca oluşturucu sürecin cgroup'unda köklenen cgroup alt ağacına sınırlı olarak, tüm cgroup hiyerarşisinin bir alt kümesini göreceği anlamına gelir.
Bir cgroup namespace içindeki süreçler, kendi cgroup'larını hiyerarşinin kökü olarak göreceklerdir. Bu, namespace içindeki süreçlerin bakış açısından, kendi cgroup'larının kök olarak göründüğü ve kendi alt ağaçlarının dışındaki cgroup'ları göremeyecekleri veya erişemeyecekleri anlamına gelir.
Cgroup namespace'leri doğrudan kaynakların izolasyonunu sağlamaz; sadece cgroup hiyerarşisi görünümünün izolasyonunu sağlar. Kaynak kontrolü ve izolasyonu hala cgroup alt sistemleri (örneğin, cpu, bellek vb.) tarafından uygulanmaktadır.
CGroups hakkında daha fazla bilgi için kontrol edin:
CGroupsLaboratuvar:
Farklı Namespace'ler Oluşturun
CLI
Yeni bir /proc
dosya sisteminin örneğini --mount-proc
parametresi ile monte ederek, yeni montaj ad alanının o ad alanına özgü süreç bilgilerine doğru ve izole bir bakış sağladığınızı garanti edersiniz.
Docker
Hangi ad alanında olduğunuzu kontrol edin
Tüm CGroup ad alanlarını bul
Bir CGroup ad alanına girin
Ayrıca, başka bir işlem ad alanına yalnızca root iseniz girebilirsiniz. Ve başka bir ad alanına giremezsiniz onu işaret eden bir tanımlayıcı olmadan (örneğin /proc/self/ns/cgroup
).
Referanslar
Last updated