Tavsiye, 2024

Editörün Seçimi

Linux Konteynerlerini Kullanarak Birden Çok Dağıtımı Eşzamanlı Olarak Çalıştırma

Linux Containers (LXC) hafif bir sanallaştırma teknolojisidir ve çeşitli kullanımları vardır. Linux çekirdeğinin bir parçasıdır ve tek bir Linux sunucusunda bir veya birden fazla Linux dağıtımını taklit etmenize izin verebilir. Sanal Kutu, KVM veya Xen gibi chroot ve tam sanallaştırma teknolojileri arasında bir orta yol olarak düşünün. BSD dünyasında bulunan benzer bir teknoloji FreeBSD Hapishaneleridir.

Örnek olarak, üzerine yazdığım makine, bir Intel Atom işlemcisi tarafından desteklenen ve 2 GB RAM'e sahip Linux Mint 18 kullanan bir dizüstü bilgisayar. Yine de, her biri Apache web sunucusunun bir örneğini çalıştıran ve büyük bir performans kaybı olmadan üç Linux kabı kullanıyorum. Bu VirtualBox gibi geleneksel bir sanal makineyle düşünülemezdi. Bu nedenle, Linux sisteminizde birden fazla dağıtım yapmak istiyorsanız, Linux Containers işi sizin için iyi bir şekilde yapmalıdır.

Linux Konteynerlerini Kurmak ve Konfigüre Etmek

Linux Mint 18 64-bit üzerine LXC'i ayarlıyoruz. Burada verilen kurulum talimatları, Ubuntu 16.04 ve üzeri sürümlerde değiştirilmemiş olarak da çalışacaktır. Başka bir dağıtım kullanıyorsanız, beklendiği gibi bir şey çalışmazsa, lütfen dağıtımcınızın resmi belgelerine bakın. Komut satırı ve genel sorun giderme ile ilgili bir aşinalık da varsayılmaktadır.

Ön şartlar

Birden fazla dağıtım kullanmaya başlamak için ayarlamanız gereken birkaç şey:

1. LXC'yi ve diğer önkoşul yazılımları aşağıdakileri kullanarak kurun :

[kaynak kod] sudo apt yükleme lxc lxc-templates uidmap [/ sourcecode]

2. Şimdi profilinizi yapılandırmanız gerekiyor. Ayarlamak için aşağıdaki komutları girin:

[kaynak kod] mkdir -p ~ / .config / lxc
echo "lxc.id_map = u 0 100000 65536" & amp; gt; ~ / .Config / LXC / default.conf
echo "lxc.id_map = g 0 100000 65536" & amp; ~ / .Config / LXC / default.conf
echo "lxc.network.type = veth" & amp; gt; & amp; amp; gt; ~ / .Config / LXC / default.conf
echo "lxc.network.link = lxcbr0" & amp; gt; & amp; gt; ~ / .Config / LXC / default.conf
echo "$ USER veth lxcbr0 2" | sudo tee -a / etc / lxc / lxc-usernet [/ sourcecode]

3. Ardından, kullanıcı izinlerini aşağıdaki gibi ayarlamanız gerekir:

[kaynak kod] sudo usermod –add-subuids 100000-165536 $ KULLANICI
sudo usermod –add-subgids 100000-165536 $ KULLANICI

sudo cgm tüm kullanıcıları oluştur
sudo cgm tüm kullanıcıyı chown $ (id -u) $ (id -g)
cgm movepid tüm kullanıcılar $$ [/ sourcecode]

Konteynerinizi Ayarlama

Şimdi diğer önkoşul yazılımlarla birlikte LXC Container'ı kurduğunuza göre, Container'i kurmak için gereken adımlar:

1. Bu örnekte, ubu1 adlı bir Ubuntu kabı ubu1 . Bunu yapmak için aşağıdaki komutu uygulayın:

[kaynak kodu] lxc-create –template indirme –name ubu1 [/ sourcecode]

2. Burada –template parametresi lxc'ye internetten önceden yapılandırılmış bir görüntü indirmesini söylerken, –name parametresi bu durumda kabın - ubu1 adını belirtir. İstediğin ismi kullanabilirsin.

3. Artık desteklenen dağıtım resimlerinin bir listesini göreceksiniz:

4. Kurmak istediğiniz dağıtımın özelliklerini girin . Ubuntu 16.04'ün 64 bit sürümünü (kod adı xenial) buraya yükleyeceğim:

5. Görüntüyü etkileşimli olarak kurmak istemiyorsanız, aşağıdaki komut yukarıdakiyle aynı sonucu verir:

[kaynak kodu] lxc-create -t ​​indir -n ubu1 - –dist ubuntu - serbest bırakma xenial –arch amd64 [/ sourcecode]

6. LXC şimdi ana sisteminize minimal bir Ubuntu xenial görüntüsü indirip yükleyecektir. İndirme ve yükleme, internet bağlantınıza ve bilgisayarınızın hızına bağlı olarak biraz zaman alabilir. Yüklemeden sonra şöyle bir ekran göreceksiniz:

Artık yeni kurulmuş Ubuntu kabınızı kullanmaya hazırsınız.

Linux Containers ile Birden Çok Dağıtım Kullanma

Konteyneri Çalıştırma

Konteynerinize lxc-start komutunu kullanarak lxc-start :

[kaynak kodu] lxc-start -n ubu1 -d [/ sourcecode]

Burada -n parametresi, başlatmak istediğiniz kabın adını belirtir (bu durumda ubu1 ) ve -d parametresi arka planda çalışmasını sağlar .

Kabın, lxc-ls komutunu kullanarak başladığını doğrulayabilirsiniz:

[kaynak kodu] lxc-ls - f [/ kaynak kodu]

-f parametresi, fantezi raporlamayı mümkün kılar. Burada iki konteynerim olduğunu görebilirsiniz - bir Debian (durdu) ve bir Ubuntu (çalışıyor).

Konteynerinize Erişme ve Kullanma

Konteynerin konsoluna lxc-attach komutunu kullanarak lxc-attach :

[kaynak kodu] lxc-attach -n ubu1 [/ kaynak kodu]

Artık kabınız üzerinde bir kök kabuğuna sahip olacaksınız. Kök kullanıcı için bir parola ayarlamanız ve normal bir kullanıcı hesabı oluşturmanız önerilir:

[Sourcecode] passwd
adduser beebom [/ sourcecode]

Elbette, beebom'u istediğiniz kullanıcı adıyla değiştirin. Daha sonra yazılımı yükleyebilir ve kabınızı normal bir sistemde yaptığınız gibi yapılandırabilirsiniz. Örneğin, bir Debian veya Ubuntu kabında:

[kaynak kod] apt kurulum wget openssh-server ipucu tmux nano iptables [/ kaynak kod]

Konteynerinizi Durdurmak

Kap ile oynamayı tamamladıktan sonra, ana sisteme geri dönmek için exit komutunu kullanın . Şimdi lxc-stop için lxc-stop komutunu kullanın :

[kaynak kodu] lxc-stop -n ubu1 [/ kaynak kodu]

Bu, kabın temiz bir şekilde kapanmasını sağlar ve disk alanı dışında sisteminizde daha fazla kaynak tüketmez.

Klonlama ve Anlık Görüntüler

Klonlar

Programları bir kaba kurduktan ve istediğiniz gibi yapılandırdıktan sonra, kolay provizyon için bir veya daha fazla kopyasını oluşturmak isteyebilirsiniz. Bunu, bir kabın tam bir kopyası olan bir klon oluşturarak yapabilirsiniz.

Örneğin, ubu1 kabının bir klonunu oluşturmak için ( ubu2 ), önce lxc-stop komutunu kullanarak lxc-stop, sonra lxc-copy komutunu kullanın:

[kaynak kodu] lxc-stop -n ubu

lxc-copy -n ubu1 -N ubu2 [/ kaynak kodu]

Burada, -n seçeneği kaynak kabı belirtir ve -N seçeneği klonun adını belirtir . Kabın klonlandığını doğrulamak için lxc-ls komutunu kullanın:

Anlık

Bir web sunucusunu yeniden yapılandırma gibi bir kapta yapılan değişikliklerden kurtarılması muhtemel tehlikeli veya zor hale getirmek üzere olduğunuzu varsayalım. Hasarı en aza indirmek için, böyle bir değişiklik yapmadan önce kabın bir anlık görüntüsünü oluşturabilirsiniz. Konfigürasyon sırasında bir şeyler ters gittiğinde, sadece bir anlık görüntüyü geri yükleyerek kabı durdurabilir ve önceki çalışma durumuna geri getirebilirsiniz.

Anlık görüntüyü oluşturmak için önce kabı durdurun :

[kaynak kodu] lxc-stop -n ubu1 [/ kaynak kodu]

Ardından, lxc-snapshot komutunu kullanarak bir anlık görüntü oluşturun:

[kaynak kodu] lxc-enstantane -n ​​ubu1 [/ sourcecode]

Bu, snap0 adlı bir anlık görüntü oluşturur. Bu komutu kullanarak oluşturduğunuz sonraki anlık görüntülere snap1, snap2, vb. Adı verilir.

Bundan sonra, kabı başlatabilir ve istediğiniz değişiklikleri yapabilirsiniz. Herhangi bir zamanda oluşturduğunuz bir anlık görüntüye dönmek istiyorsanız, kabı durdurun ve bir anlık görüntüyü geri yüklemek için lxc-snapshot parametresiyle lxc-snapshot komutunu kullanın:

[kaynak kod] lxc-enstantane -r snap0 -n ubu1 [/ sourcecode]

Bu, anlık görüntü snap0 ubu1 kapsayıcısına geri ubu1 .

Kaplarda Önyüklemede Otomatik Başlatma

Sisteminizi başlattığınızda bir kapsayıcı yapabilirsiniz, örneğin bir web sunucusu kapsayıcısı, otomatik olarak başlatılabilir. Bunu yapmak için, $HOME/.local/share/lxc//config içinde bulunan kabın config dosyasına gidin ve aşağıdaki satırları ekleyin :

[kaynak kod] lxc.start.auto = 1
lxc.start.delay = 5 [/ sourcecode]

İlk satır, kabın önyüklemede başlatılması gerektiğini belirtir. İkincisi, sisteme, varsa bir sonraki kaba başlamadan önce 5 saniye beklemesini söyler.

Sorun giderme

Kapları başlatmada sorun yaşıyorsanız, denenecek ilk şey lxc-start komutunu Ön Plan modunda çalıştırmaktır. Örneğin:

[kaynak kodu] lxc-start -n ubu1 -F [/ sourcecode]

Bu , mevcut konsoldaki hataları gösterir ve bu, sorunun yapısını belirlemede çok faydalıdır.

Birden Çok Kapsayıcıyı Aynı Anda Çalıştırma ile İlgili Sorunlar

Aynı anda birden fazla konteyner çalıştırmayı denerseniz, “Kotaya ulaşıldı” veya “yapılandırılmış ağ oluşturulamadı” gibi hatalar görebilirsiniz . Bunun nedeni, size tahsis edilenden daha fazla ağ arayüzü çalıştırmanızdır. Kullanıcının /etc/lxc/lxc-usernet dosyasını root olarak değiştirerek kullanıcının çalıştırabileceği ağ köprülerinin sayısını artırabilirsiniz . Bu gibi bir şey görünebilir:

[sourcecode] # USERNAME TİP KÖPRÜ SAYISI
beebom veth lxcbr0 5 [/ kaynak kodu]

Sonundaki sayıyı (bu örnekte 5) 10 gibi daha büyük bir sayıya değiştirebilirsiniz. Bu, bir seferde 10 taneye kadar konteyner çalıştırmanıza izin verecektir.

Linux Konteynerlerinin Diğer Kullanım Alanları

Linux konteynerlerinin çeşitli kullanımları vardır. Bunları hafif test kutuları olarak, örneğin bir web veya veritabanı sunucusunun çeşitli konfigürasyonlarını bir üretim sunucusuna vermeden önce test etmek için kullanabilirsiniz. Diğer bir kullanım durumu, bir uygulamanın çeşitli dağıtımların farklı sürümlerinde nasıl çalıştığını test etmektir.

Bunları, güvenmediğiniz uygulamaları izole etmek için de kullanabilirsiniz - bu tür bir uygulamanın zarar görmesi, kendi konteyneriyle sınırlı olacak ve ana bilgisayar sistemini etkilemeyecektir. Lütfen GUI uygulamalarını bir kapta çalıştırmak mümkün olsa da, önemli miktarda zaman ve çaba harcadığını ve bu nedenle önerilmediğini unutmayın. GUI uygulamalarını bir sanal alanda çalıştırmak istiyorsanız, Linux'ta uygulamaları nasıl sanallaştıracağımızla ilgili makalemize bakın.

Linux Konteynerleri ile Aynı Anda Birden Çok Dağıtım Yapın

Böylece, tam boyutlu bir sanal makinenin yükü olmadan, tek bir bilgisayarda birden fazla Linux dağıtımı gerçekleştirme konusundaki How-To'muzu sonlandırıyoruz. Bu teknolojinin faydası yalnızca yaratıcılığınızla sınırlıdır, bu nedenle yeni kullanım durumlarını denemek ve bulmaktan çekinmeyin. Kapları ayarlamakta sorun yaşıyorsanız, yorumlar bölümünde bize bir soru sormaktan çekinmeyin.

Top