GNU/Linux >> Belajar Linux >  >> Linux

Semua yang Perlu Anda Ketahui tentang Linux Containers (LXC)

Layanan mikro telah mendapatkan popularitas yang stabil sejak pemberontakan cloud. Perusahaan seperti Amazon dan Netflix menggunakan platform cloud untuk memberikan layanan yang paling diminati. Container merupakan inti dari aplikasi cloud-native tersebut. Container adalah lingkungan terisolasi yang memfasilitasi layanan mikro dan menawarkan manfaat seperti penskalaan yang unggul dan penerapan yang cepat. Ada perbedaan besar antara mesin virtual tradisional berbasis hypervisor seperti VMware dan layanan virtualisasi tingkat OS seperti Docker dan Linux Containers (LXC). Dalam panduan ini, kami akan memberi pembaca kami pengetahuan tentang LXC, alat virtualisasi tingkat sistem yang tangguh untuk Linux.

Panduan Lengkap untuk Menguasai Linux Containers

Jika Anda seorang admin Linux yang ingin mempelajari LXC secara mendetail, maka ini adalah panduan yang sempurna untuk Anda. Dalam posting ini, kami menjelaskan berbagai fitur dan manfaat LXC serta kapan harus memilih ini daripada layanan containerization lainnya. Kami juga akan menunjukkan cara memasang dan memulai LXC.

Linux Containers:Fitur dan Dasar-dasar

Jadi, apa itu LXC? Seperti yang telah kami katakan, ini adalah layanan virtualisasi yang memungkinkan kami memutar kelompok lingkungan Linux yang terisolasi. Ini memberikan sejumlah besar manfaat dibandingkan mesin virtual monolitik dengan mengurangi beban sumber daya pada mesin host. Ini membuatnya ideal untuk membangun, menguji, dan menerapkan perangkat lunak cloud-native. LXC, tidak seperti alat virtualisasi tingkat OS lainnya, menyediakan lingkungan Linux yang jauh lebih baik.

LXC tidak menggunakan mekanisme kontrol sumber daya yang mewah seperti hypervisor. Sebaliknya, ia menggunakan fitur penahanan host yang disediakan langsung oleh kernel Linux. Komponen utama yang diandalkannya adalah namespaces dan cgroups . Mereka pertama kali ditambahkan ke kernel sejak versi 2.6.24. Prinsip desain utama cgroups alias 'Grup Kontrol' adalah untuk memberikan batasan sumber daya, prioritas, akuntansi, dan kontrol. Ruang nama bertanggung jawab untuk menyembunyikan ruang proses dan informasi sumber daya dari satu wadah dari wadah lainnya.

Selain itu, LXC juga memiliki dukungan bawaan untuk berbagai kebijakan pengerasan Linux seperti profil Apparmor dan SELinux serta Chroot. Ini berjalan di hampir setiap arsitektur dan di cloud dengan mudah. Plus, Anda dapat memutar distribusi Linux apa pun terlepas dari hostnya. Jadi, katakanlah mesin Host Anda menjalankan Ubuntu. Anda dapat dengan mudah menjalankan Red Hat atau CentOS di mesin ini menggunakan wadah LXC.

LXC, tidak seperti beberapa layanan containerization lainnya, tidak dapat menjalankan Mac OS atau Windows. Ini karena wadah LXC bergantung pada kernel host secara langsung. Jadi, jika Anda ingin menjalankan aplikasi yang memerlukan salah satu sistem ini, Anda harus mempertimbangkan platform lain seperti Docker. Secara keseluruhan, LXC paling cocok untuk orang yang perlu menjalankan lingkungan Linux yang terisolasi dengan overhead sumber daya yang minimal.

Kontainer Linux vs. Docker

- -

Jika Anda bekerja di tim DevOps atau sebagai profesional keandalan situs, Anda seharusnya sudah terbiasa dengan Docker. Ini adalah platform containerization paling populer untuk aplikasi cloud-native saat ini. Jadi, Anda mungkin bertanya pada diri sendiri bagaimana LXC berbeda dari Docker atau mana yang lebih baik. Seperti halnya teknologi apa pun, jawabannya hanya bergantung pada kasus penggunaan Anda. Namun demikian, kami akan memberikan beberapa wawasan tentang perbedaan antara dua platform virtualisasi populer ini.

Docker adalah teknologi yang relatif lebih baru dibandingkan dengan LXC. Faktanya, ia menggunakan LXC di bawah kap di hari-hari awalnya. Namun, Docker telah menempuh perjalanan jauh sejak saat itu dan telah mengimplementasikan solusinya sendiri. Sekarang, perbedaan utama antara Docker dan LXC adalah pilihan desainnya. Docker lebih menekankan pada pembuatan aplikasi. LXC, di sisi lain, dirancang untuk menyediakan lingkungan virtual Linux mandiri.

Pengembang biasanya menggunakan Docker untuk membuat aplikasi yang dapat dibuang segera setelah versi baru tiba. Aplikasi yang menggunakan LXC, bagaimanapun, dimaksudkan untuk bertahan. Anda dapat ssh ke wadah LXC seperti yang Anda lakukan ke host Linux jarak jauh dan mengelola lingkungan. Docker tidak mengizinkan ini, dan Anda akan menggunakan alat khusus untuk mengelola penerapan dan pengujian. Pada akhirnya, Anda dapat menggunakan salah satu dari ini untuk membangun aplikasi cloud. Orang biasanya memilih LXC daripada Docker saat membuat aplikasi yang perlu dipelihara untuk waktu yang lama.

LXC:Komponen

Runtime LXC terdiri dari sekumpulan komponen individual. Ini termasuk inti liblxc library, seperangkat alat standar untuk mengontrol container, berbagai template distribusi, dan beberapa binding bahasa untuk API utama. Dukungan bahasa termasuk Python, Go, Ruby, Lua, dan Haskell. Selain itu, ada beberapa dependensi keras yang tanpanya lxc tidak akan terinstal, seperti pustaka C seperti glibc, uclib, atau bionic. LXC juga membutuhkan versi kernel 2.6.32 atau lebih.

LXC:Jenis Virtualisasi

Wadah Linux (LXC) menawarkan lingkungan sistem operasi nominal yang dapat digunakan untuk menjalankan aplikasi Linux atau layanan jaringan tertentu. Ini menggunakan kernel sistem host secara langsung dan, sebagai akibatnya, tidak dapat dijalankan pada mesin non-Linux. Pengguna dapat memilih dari sejumlah besar template distribusi untuk container mereka, termasuk namun tidak terbatas pada Ubuntu, Fedora, Debian, Red Hat, dan CentOS.

Manfaat utama dari jenis penampung ini adalah memungkinkan kami untuk mengisolasi layanan sensitif. Anda dapat menggunakan jenis virtualisasi ini untuk membuat lingkungan untuk analisis malware, peretasan etis, atau tugas yang memerlukan host mandiri. Namun, ini hanya tujuan yang dimaksudkan. Jadi, Anda juga dapat menjalankan layanan arbitrer apa pun yang biasanya Anda jalankan di mesin Linux Anda. Ini sangat kontras dengan pendekatan aplikasi-sentris Docker.

LXC:Dukungan Perkakas

Dukungan perkakas yang kuat sangat penting untuk mengelola aplikasi cloud serta layanan mandiri. LXC menawarkan seperangkat alat yang hampir identik dengan mesin Linux tradisional Anda. Dengan demikian, Anda tidak perlu menginstal alat manajemen mewah untuk mengelola wadah LXC Anda. Anda dapat menggunakan paket Linux standar seperti ssh, htop, iptables, dan pekerjaan Cron Linux. Hal ini memudahkan admin untuk mengelola dan mengotomatiskan layanan dalam container.

Selain itu, lxc cli menawarkan seperangkat alat yang komprehensif untuk membuat, menjalankan, dan mengelola wadah LXC dengan cepat. Anda akan belajar cara menginstal ini dan menggunakan fungsi dasar dalam panduan ini. Plus, Anda juga dapat menggunakan alat tambahan dengan menggunakan rantai alat LXD. Kami akan berbicara tentang LXD secara rinci di bagian selanjutnya. Secara keseluruhan, LXC tidak membatasi kemampuan pengguna untuk menggunakan paket Linux standar sambil tetap menawarkan alat khusus.

LXC:Ekosistem

Ekosistem LXC praktis identik dengan Linux. Ini membuatnya lebih mudah untuk memulai dengan wadah Linux daripada dengan Docker atau rkt. Karena kami dapat menginstal dan menjalankan semua paket Linux standar dalam wadah ini, maka mudah untuk mengkonfigurasi dan memeliharanya. Jadi, jangan kewalahan saat Anda mengetahui bahwa tidak diperlukan alat tambahan seperti Kubernetes dan Swarm untuk LXC.

LXC:Kemudahan Penggunaan

Salah satu alasan utama untuk pindah ke platform kemas dari mesin virtual Linux adalah peningkatan kemudahan penggunaan. LXC mengambil ini selangkah lebih maju dengan menghapus kebutuhan untuk menginstal paket monolitik sama sekali. Ini tidak hanya meningkatkan produktivitas tetapi juga membuat alur kerja lebih mudah ditangani. Kontainer LXC hadir dengan sistem init individual yang menangani konfigurasi sistem sambil mempertahankan jejak sumber daya yang ringan.

Selain itu, pengalaman pengguna yang lancar dan ekosistem yang matang menjadikan LXC pilihan yang jauh lebih baik daripada mesin virtual tradisional. Anda dapat memutar wadah LXC dalam beberapa menit dan menjalankan distro Linux favorit Anda di dalamnya. Menginstal dan mengelola aplikasi Linux semudah mengetik beberapa perintah sehari-hari. Jadi, jika Anda tidak ingin mempelajari seperangkat alat yang sama sekali baru dan tetap dapat menjalankan layanan yang terisolasi, container LXC menawarkan opsi yang sangat baik.

LXC:Popularitas

Tidak ada keraguan bahwa wadah Linux kurang populer seperti yang dinikmati oleh Docker. Ini berasal dari beberapa pilihan desain yang ringkas, yang antara lain mencakup ketidakmampuan untuk menjalankan lingkungan Windows atau Mac OS. Docker lebih ringan daripada LXC dan karenanya lebih skalabel. Namun, LXC jauh lebih tua dari Docker, dan container-nya secara signifikan lebih mandiri daripada Docker.

Selain itu, LXC sangat cocok untuk membuat lingkungan pengujian seperti lab analisis malware, dan sebagainya. Ini membuatnya jauh lebih populer di kalangan profesional TI senior yang bekerja dengan proyek sensitif secara teratur. LXC juga menikmati popularitas yang lebih besar di industri yang mengembangkan dan memelihara aplikasi dengan siklus hidup yang panjang. Secara keseluruhan, meskipun kurang populer dibandingkan dengan Docker atau rkt, LXC menawarkan peningkatan keamanan dan kemudahan pemeliharaan.

LXC:Performa

Seperti yang telah kami nyatakan, salah satu alasan utama orang menggunakan platform kemas di atas mesin virtual adalah pengurangan beban sumber daya. Ini, pada gilirannya, mengarah pada kinerja yang jauh lebih unggul. LXC menawarkan kepadatan lebih dari 10 kali lipat dari mesin virtual tradisional seperti KVM (Mesin Virtual berbasis Kernel). Ini berarti Anda dapat menjalankan container hingga 10 kali lebih banyak dalam satu host Linux dibandingkan dengan mesin tamu KVM.

Selain itu, hypervisor juga rentan terhadap masalah latensi yang tidak diinginkan. Dibandingkan dengan KVM, LXC mengurangi latensi hingga 57%. Selain itu, wadah LXC memuat jauh lebih cepat daripada emulator virtual yang didukung oleh hypervisor. Misalnya, instans LXC diluncurkan 94% lebih cepat jika dibandingkan dengan KVM. Jadi, seperti yang Anda lihat, LXC memberikan peningkatan kinerja yang signifikan dengan mengurangi beban sumber daya dan latensi. Dan waktu muat yang lebih cepat menawarkan pengalaman pengguna yang lancar.

LXC:Integrasi

Salah satu manfaat utama dari wadah Linux adalah bahwa wadah tersebut terintegrasi dengan sangat baik dengan perangkat lunak yang ada. Anda tidak terbatas hanya menggunakan aplikasi Linux tradisional dengan LXC. Misalnya, kita dapat menggunakan LXC dan Docker sebagai pelengkap satu sama lain. Artinya, Anda cukup meng-host layanan mikro Docker Anda dalam instans LXC untuk memberikan isolasi yang lebih baik dan karakteristik seperti VM. Ini membuatnya sangat nyaman untuk menjalankan dan mengelola aplikasi Docker.

Selain itu, ini juga menghilangkan batasan hanya menjalankan aplikasi asli Linux. Jadi, kita dapat dengan mudah membuat layanan mikro Docker di atas Windows atau Mac dan menjalankannya dari dalam wadah Linux. Ini adalah metode yang sangat rapi. LXC juga cocok untuk OpenStack, platform komputasi awan yang populer. Ini digunakan oleh sejumlah besar pemimpin industri dan biasanya digunakan sebagai IaaS (Infrastructure-as-a-Service). Hal ini membuat penerapan dan pengelolaan aplikasi cloud menjadi lebih mudah dari sebelumnya.

LXC:Migrasi

Migrasi sangat penting bagi banyak admin, dan LXC memberikan dukungan yang memadai dalam hal ini. Ada lebih dari satu cara untuk memigrasi wadah Linux dari satu host ke host lainnya. Anda juga dapat melakukan migrasi langsung, meskipun dengan beberapa batasan. Cara termudah untuk memigrasikan container ke platform lain adalah dengan mengambil cadangan dan memulihkannya di mesin target, baik secara fisik maupun jarak jauh melalui ssh.

Anda juga dapat memigrasikan container menggunakan LXD API dan protokol Simplestreams. Kita akan berbicara tentang LXD di bagian berikut. Jadi jangan khawatir jika Anda belum mengetahuinya. Kami tidak akan membahas terlalu banyak detail tentang setiap langkah proses migrasi. Mungkin kami akan membahasnya di panduan yang berbeda. Untuk saat ini, Anda dapat menemukan beberapa informasi lebih lanjut di situs web Ubuntu mengenai migrasi langsung. Stéphane Graber, pengembang utama LXC, juga membahas migrasi LXC di situs webnya.

LXC:Dukungan

Seperti halnya platform baru, dukungan perusahaan sangat penting. Untungnya, LXC menyediakan layanan terbaik dalam hal ini. Jadi, tidak peduli apakah Anda menggunakan wadah Linux untuk tujuan pribadi atau bisnis, Anda dijamin mendapatkan dukungan tambahan kapan pun Anda membutuhkannya. Terlebih lagi, karena LXC dikembangkan oleh Canonical, perusahaan di belakang Ubuntu dan perangkat lunak open-source populer lainnya. Dengan demikian, kualitas layanan menjadi lebih baik.

Canonical juga menawarkan dukungan komersial untuk perusahaan yang ingin menggunakan LXC untuk aplikasi cloud-native mereka. Namun, itu juga disediakan untuk rilis Ubuntu LTS. LXC versi 2.0 dan 3.0 adalah rilis dukungan jangka panjang. Jadi, jika Anda ingin memiliki container yang stabil di semua platform Anda, Anda harus tetap menggunakan versi ini. Dukungan untuk template distribusi lain biasanya bergantung pada distribusi spesifik tersebut.

LXD:Memulai

LXC dimulai sebagai antarmuka ruang pengguna yang menyediakan akses ke fitur penahanan bawaan kernel Linux. Ia lebih dari mampu melakukan tugasnya. Namun, dengan munculnya Docker dan ekosistemnya yang kuat, para pengembang mengalihkan fokus mereka untuk mengembangkan platform yang lebih matang. Hasilnya adalah LXD, sistem manajemen container yang tangguh yang dapat memberikan pengalaman seperti mesin virtual tetapi menggunakan container LXC.

LXD didasarkan pada gambar, seperti gambar Docker. Ini juga mengimplementasikan REST API yang sederhana namun kuat untuk berinteraksi dengan layanan dengan mudah. API ini terhubung dengan sistem lokal menggunakan soket Unix dan juga dapat dihubungkan dari jarak jauh melalui protokol jaringan standar.

Beberapa fitur LXD mencakup peningkatan keamanan, skalabilitas, pengalaman pengguna, migrasi langsung, kontrol sumber daya tingkat lanjut, manajemen jaringan, dan manajemen penyimpanan. Secara keseluruhan, LXD merupakan pelengkap LXC, bukan pengganti. Ini menggunakan LXC di bawah tenda dan hanya menghilangkan detail tingkat rendah.

Menginstal dan Menggunakan LXC

Kami telah membahas manfaat Wadah Linux dengan sangat rinci. Sekarang, saatnya untuk mengotori tangan kita dan mulai menggunakan teknologi yang luar biasa ini. Tapi pertama-tama, Anda perlu menginstal LXC di mesin Anda.

Kami menunjukkan cara menginstal LXC pada mesin Linux standar. Anda akan belajar cara menginstal LXC di Linux dan membuat container menggunakan CLI. Cukup buka emulator terminal Linux favorit Anda dan ketik perintah berikut.

$ sudo apt-get install lxc

Ini akan menginstal lxc CLI di mesin lokal Anda. Setelah ini selesai, Anda akan memiliki akses ke semua perintah lxc serta template distribusi yang diperlukan untuk membangun dan menjalankan container. Anda sekarang dapat membuat wadah dasar menggunakan perintah sederhana berikut.

$ lxc-create -t <template> -n <container name>

-t flag menentukan nama template, dan -n flag menentukan nama container. Perintah ini akan membuat wadah berdasarkan template distribusi yang diberikan. Gunakan perintah di bawah ini untuk menampilkan daftar semua template yang tersedia.

$ ls /usr/share/lxc/templates/

Jadi, perintah di bawah ini membuat container bernama test-container menggunakan template Alpine.

$ lxc-create -t alpine -n test-container

Ini akan melanjutkan dan mengunduh file yang diperlukan untuk instalasi Alpine. Ini akan memakan waktu cukup lama dan akan menampilkan pengguna dan kata sandi default setelah selesai. Sekarang, Anda dapat memulai container menggunakan perintah di bawah ini.

$ sudo lxc-start -n test-container

Gunakan perintah berikutnya untuk terhubung dengan wadah ini menggunakan nama pengguna dan kata sandi default.

$ sudo lxc-console -n test-container

Ini akan menghubungkan Anda ke container yang sedang berjalan. Gunakan kombinasi tombol Ctrl+a+q untuk memutuskan sambungan dari wadah ini. Anda juga dapat terhubung ke wadah secara langsung sebagai root dengan menggunakan yang berikut ini.

$ sudo lxc-attach -n test-container

Gunakan perintah di bawah ini untuk melihat beberapa informasi untuk container ini.

$ sudo lxc-info -n test-container

Ini akan menampilkan nama wadah di samping statusnya, PID, alamat IP, penggunaan memori, penggunaan CPU, dan banyak lagi. Jika Anda telah memulai beberapa penampung, Anda dapat melihat daftarnya dengan menggunakan yang berikut ini.

$ sudo lxc-ls

Untuk menghentikan wadah tertentu, gunakan perintah berikut.

$ sudo lxc-stop -n test-container

Anda juga dapat menghapus wadah dari sistem Anda jika Anda tidak membutuhkannya lagi. Gunakan perintah di bawah ini untuk tujuan ini.

$ sudo lxc-destroy -n test-container

Ini akan menghapus test-container bersama semua konfigurasinya dari lingkungan host Anda. Buka halaman dokumentasi LXC untuk detail lebih lanjut tentang setiap perintah yang tersedia.

Memasang dan Menggunakan LXD

Seperti yang telah kita bahas, LXD adalah pembungkus untuk LXC dengan daftar fitur tambahan. Ini pada dasarnya adalah sistem manajemen berbasis gambar untuk wadah Linux. Anda dapat menginstal lxd menggunakan perintah berikut.

$ sudo snap install lxd

Anda tidak perlu menginstal LXC secara terpisah jika Anda menginstal LXD. Selain paket snap, LXD juga tersedia sebagai paket Debian. Anda juga dapat menginstalnya dari sumbernya. Sekarang, Anda perlu melakukan beberapa hal konfigurasi. Yang pertama adalah menambahkan /snap/bin/lxd ke $PATH sistem Anda.

$ echo 'export PATH="/snap/bin/lxd:$PATH"' >> ~/.bashrc
$ source ~/.bashrc

Anda perlu menginisialisasi konfigurasi lxd sekarang. Cukup jalankan perintah terminal Linux berikut untuk melakukan ini.

$ sudo lxd init

Ini akan meminta Anda untuk banyak pilihan. Anda hanya dapat memilih yang default untuk Anda sekarang. Setelah konfigurasi selesai, Anda sekarang dapat membuat wadah pertama Anda. LXD membuat instance container menggunakan gambar. Perintah di bawah ini menunjukkan daftar repositori gambar yang tersedia. Anda dapat menambahkan sumber gambar baru serta membuatnya secara lokal. Untuk saat ini, kami akan tetap menggunakan remote resmi.

$ sudo lxc launch images:alpine

Perintah ini akan membuat instance menggunakan gambar alpine. Ini adalah gambar yang cukup ringan yang sangat sesuai dengan tujuan kita. Anda dapat menggunakan gambar lain jika Anda mau. Sekarang, Anda dapat menggunakan perintah di bawah ini untuk mendapatkan shell ke wadah yang baru dibuat ini.

$ sudo lxc exec test-container /bin/sh

Jika Anda telah membuat wadah berdasarkan gambar Ubuntu, ganti /bin/sh dengan /bin/bash untuk menjalankan bash shell. Anda juga dapat menggunakan shell Linux standar apa pun selama gambar container mendukungnya. Anda juga dapat menjalankan perintah di dalam wadah tanpa terhubung ke shell.

$ sudo lxc exec test-container -- ip a

Ini akan mencetak alamat ip dari antarmuka kontainer menggunakan perintah ip Linux. Terakhir, Anda dapat menghentikan test-container menggunakan perintah di bawah ini.

$ sudo lxc stop test-container

LXD mendukung banyak perintah tambahan untuk wadah Linux. Buka halaman dokumentasi LXD untuk detail lebih lanjut tentang ini.

Mengakhiri Pikiran

Wadah Linux adalah cara yang bagus untuk mengimplementasikan VM ringan tanpa hypervisor apa pun. Hal ini membuat mereka sangat terukur dan ramah sumber daya. Selain itu, LXC juga menawarkan pendekatan yang layak untuk mengembangkan aplikasi cloud-native. Perbedaan utama antara wadah LXC dan wadah Docker adalah bahwa LXC adalah OS-sentris, sedangkan wadah Docker adalah aplikasi-sentris.

Jadi, jika Anda ingin membangun lingkungan lab pribadi atau layanan cloud-ready yang tangguh, pertimbangkan LXC sebagai opsi yang lebih baik daripada Docker atau rkt. Namun demikian, Docker masih merupakan pilihan yang sangat baik untuk virtualisasi aplikasi. Jadi, lihat panduan kami tentang perintah Docker sehari-hari jika Anda ingin mencoba Docker.


Linux
  1. Semua yang Perlu Anda Ketahui Tentang Ubuntu 13.04

  2. Direktori tmp Linux:Semua yang Perlu Anda Ketahui

  3. Kompresi File Linux:Semua yang Perlu Anda Ketahui

  1. Izin File Linux:Semua yang Perlu Anda Ketahui

  2. Swappiness di Linux:Semua yang perlu Anda ketahui

  3. Semua yang Perlu Anda Ketahui Tentang Sistem File Linux

  1. Semua yang Perlu Anda Ketahui Tentang Perintah Chmod Linux

  2. Semua yang Perlu Anda Ketahui Tentang Server DNS Ubuntu

  3. Semua yang Perlu Anda Ketahui Tentang Server Linux Ubuntu