LXC kabını başka bir LXC kabı içinde başlatmak mümkün müdür?
LXC kabını başka bir LXC kabı içinde başlatmak mümkün müdür?
Yanıtlar:
Burada birkaç efsaneyi ortadan kaldıracağım.
Bu sadece kötü bir fikir. Üzgünüm. - Jacob, Mar 5, 20:30
Bunun nasıl kötü bir fikir olduğunu anlamıyorum. Gerçekten sadece bir chroot içindeki bir chroot. Bir yandan, performansı göz ardı edilebilir bir şekilde düşürebilir (bir VM içinde bir VM çalıştırmaya kıyasla hiçbir şey). Öte yandan, daha güvenli olması muhtemeldir (örneğin, kök ana sistemden ve bileşenlerinden daha fazla izole edilmiştir).
Bunu yapmak için gerçekten bir nedeniniz var mı? Lütfen buradaki soruların karşılaştığınız gerçek sorunlarla ilgili olması gerektiğini unutmayın. - Zoredache 5 Mar 21:52
Posterin yorumuna% 100 katılıyorum. Ayrıca, burada soru gönderen herkesin muhtemelen bunu yapmak için gerçek bir nedenleri olduğunu düşündüğünü varsaymanın güvenli olduğunu düşünüyorum.
Bence, bu LXC, VM geçişini basitleştirebilmelidir (ve ayrıca yedekleme + kurtarma). Ancak, işletim sistemi sunucusuna erişim olmadığında (örneğin ucuz vps) durumlardan emin değilim. - Mikhail 6 Mar, 11:17
PaaS / IaaS projeleri için ilk kez LXC'ye daldığımda, özellikle kullanıcıların geliştirme amacıyla bulut ortamlarını taklit edebilmelerini sağlamakla ilgilendiğim Haziran ayında bu soru ile karşılaştım.
LXCeption. Çok deriniz. - Tom O'Connor, 6 Mar, 22:46
Bunu okuduğumda biraz güldüm, ama bu durum tam olarak değil :)
Her neyse, sonunda tüm bunları okuduktan sonra Ubuntu 12.04 LTS Server Edition hisse senedini yükleyen bir VirtualBox ortamı kurdum, bunun% 100 mümkün olduğunu düşünerek. LXC'yi kurduktan sonra yeni bir kap oluşturdum ve kabın içine apt-get ile LXC kurdum. Yüklemenin çoğu iyi bir şekilde ilerledi, ancak sonunda paketi başlatıldıktan sonra başlangıç işi başlayamayan cgroup-lite paketi ile ilgili bir sorun nedeniyle hatayla sonuçlandı.
Biraz aradıktan sonra , stgraber.org adresinde bu güzel makaleyle karşılaştım (güzellikler "Container Nesting" bölümünün altında saklanıyor):
sudo apt-get install lxc
sudo lxc-create -t ubuntu -n my-host-container -t ubuntu
sudo wget https://www.stgraber.org/download/lxc-with-nesting -O /etc/apparmor.d/lxc/lxc-with-nesting
sudo /etc/init.d/apparmor reload
sudo sed -i "s/#lxc.aa_profile = unconfined/lxc.aa_profile = lxc-container-with-nesting/" /var/lib/lxc/my-host-container/config
sudo lxc-start -n my-host-container
(in my-host-container) sudo apt-get install lxc
(in my-host-container) sudo stop lxc
(in my-host-container) sudo sed -i "s/10.0.3/10.0.4/g" /etc/default/lxc
(in my-host-container) sudo start lxc
(in my-host-container) sudo lxc-create -n my-sub-container -t ubuntu
(in my-host-container) sudo lxc-start -n my-sub-container
Bu AppArmor politikasını kurmak ve arka plan planını yeniden başlatmak hile yaptı (yine de ağ aralıklarını değiştirmeyi unutmayın!). Aslında, belirli bir snippet'in o kadar önemli olduğunu düşündüm ; makalenin çevrimdışı olması durumunda http://pastebin.com/JDFp6cTB @ aynasını yaptım .
Bundan sonra, sudo /etc/init.d/cgroup-lite start
başarılı oldu ve pürüzsüz yelken oldu.
Yani, evet, başka bir LXC kabının içinde bir LXC kabı başlatmak mümkündür.
Ubuntu 14.04 (trusty) ile üst konteyner konfigürasyonuna sadece aşağıdakileri ekleyebilirsiniz:
lxc.mount.auto = cgroup
lxc.aa_profile = lxc-container-default-with-nesting
başvuru: https://help.ubuntu.com/lts/serverguide/lxc.html#lxc-basic-usage ("yuvalama" için arama yapın )
Oturum açma ekranı görünmeden önce uzun bir duraklamadan kaçınmak için, önyüklemeden önce önceden yapılandırılmış bir ağınız olduğundan emin olun!
HTH
~/.config/lxc/default.conf
kullanıcılar için, kabı oluşturan kullanıcının hesabının altına bir dosya eklemek ve bu iki satırı ona eklemek gayet iyi çalışıyor.
Ayrıca ... şimdi TÜM YERLERI tek bir LXC kabına kurabileceğinizi biliyor muydunuz. Openstack "hizmetlerinin" (nova, hızlı vb.) Her biri daha sonra "ana / üst" kap içinde "iç içe" lxc kaplara kurulur.
Her şeyi kurmak biraz zaman alır ancak bittiğinde, dizüstü bilgisayarınızda ya da masaüstünüzde denenecek güzel bir OpenStack ortamını test edebilirsiniz.
OpenStack'i durdurmak istiyorsanız, sadece Ana Sayfa / Üst Kapsayıcıyı açar.
Evet iç içe LXC kaplar yapabilirsiniz ve ilk yoruma rağmen İç içe kapların kesinlikle yararlı olduğu zamanlar ve kullanım durumları vardır. Stephane Graber'in 10 parçalı LXC blog'una bakın, ancak özellikle Container Nesting -
Stephane Graber'in LXC'deki 10 bölüm dizisi
use-cases: Çok kiracılı bir LXC ortamı istediğinizi varsayalım. LXC konteyner yapılandırma dosyasına 2 cm ekleyerek Yuvalamayı etkinleştirdiğinizden emin olarak her kişi veya kuruluş için 1 Ana kapsayıcı oluşturun. Her bir Ana kapsayıcıda, her grubun ihtiyaç duyduğu uygulamaları, masaüstlerini vb. Yüklediğiniz iç içe alt kaplar oluşturun. NOT Ana kapsayıcılar için varsayılan ağın 10.0.3.x olmasına rağmen, iç içe kapsayıcılar varsayılan olarak 10.0.4.x olacaktır (gerekirse, değiştirebilirsiniz).
Nested LXC'yi kullandığım en büyük avantaj nedir ? Master kabını lxc-stop edip lxc-clone yaparsanız .. sadece Master'ı değil, tüm alt-kapları da klonlarsanız ... bu hızlı yedeklemeler için kullanışlıdır. Bu yaklaşım, CXU ile LXC canlı geçişini yapmak istiyorsanız da kullanışlıdır. Master konteynerlerden birini başka bir Makineye geçirdiğinizde ... aslında onu ve tüm iç içe geçmiş konteynerleri de geçirirsiniz.
Son olarak, harika bir LXC yerleştirme örneği için Stephane Graber ve diğerleri, hepsi 1 LXC kabında LXC, BPG ve OSPF kullanan "İnternet" için bir simülatör kurdular. Bu 1 LXC "ana veya ana" LXC kabının içinde, BGP / OSPF yönlendirmesi için her biri Quagga çalıştıran 512 iç içe LXC kabı vardır. Birlikte bu 512 İnternet “düğümleri” interneti simüle ediyor. Bu uygulama 2014 NSEC güvenlik konferansında, tüm katılımcıların İnternetteki güvenliği denemek için kullanıldı.
Bunun için kaynak Githug'da: 2014 NSEC İnternet github kodu için LXC simülatörü