Pengasingan bekas merujuk kepada mekanisme di mana bekas individu diasingkan dan diasingkan antara satu sama lain dan daripada sistem hos. Pengasingan bekas adalah penting untuk memastikan keselamatan dan integriti aplikasi perisian dan persekitaran sistem asas.
Evolusi dan Sebutan Pertama Pengasingan Bekas
Idea pengasingan kontena lahir daripada keperluan untuk pengasingan proses dalam sistem pengendalian. Chroot, dibangunkan pada tahun 1982 untuk sistem seperti Unix, merupakan langkah utama pertama ke arah kontena, tetapi ia menawarkan pengasingan terhad.
Konsep moden pengasingan kontena muncul pada awal 2000-an dengan pengenalan penjara FreeBSD dan Zon Solaris. Walau bagaimanapun, sehingga pengenalan Kontena Linux (LXC) pada tahun 2008, kontena mula mendapat momentum yang ketara. LXC direka bentuk untuk mencipta persekitaran maya yang boleh menjalankan berbilang sistem Linux terpencil (bekas) pada satu hos Linux.
Istilah "Pengasingan Kontena" telah menjadi tumpuan dengan kemunculan Docker pada tahun 2013. Docker menggunakan LXC pada peringkat awalnya sebelum menggantikannya dengan perpustakaannya sendiri, libcontainer.
Menyelam Lebih Dalam ke dalam Pengasingan Bekas
Pengasingan bekas adalah tentang mewujudkan ruang bebas di mana aplikasi boleh dijalankan tanpa mengganggu satu sama lain. Ia menggunakan beberapa teknik dan ciri kernel Linux, termasuk ruang nama, cgroup (kumpulan kawalan), dan sistem fail berlapis.
-
Ruang nama: Ruang nama menyekat perkara yang boleh dilihat oleh proses, mengasingkan pandangan proses terhadap persekitaran sistem pengendalian. Jenis ruang nama yang berbeza termasuk ruang nama ID Proses (PID), ruang nama rangkaian, ruang nama lekap dan ruang nama pengguna.
-
Kumpulan C: Kumpulan Kawalan mengehadkan perkara yang boleh digunakan oleh proses, iaitu, CPU, memori, lebar jalur rangkaian, dll. Mereka juga membantu dalam mengutamakan dan menggunakan sumber perakaunan.
-
Sistem Fail Berlapis: Ini membolehkan pemisahan dan tindanan lapisan imej, dan penting untuk mengurus imej dan bekas Docker.
Struktur Dalaman Pengasingan Bekas dan Cara Ia Berfungsi
Pengasingan bekas, dari perspektif seni bina, dicapai menggunakan komponen berikut:
-
Masa Jalan Kontena: Ini ialah perisian yang menjalankan dan mengurus bekas, cth, Docker, Containerd atau CRI-O.
-
Imej Bekas: Ini adalah pakej ringan, berdiri sendiri, boleh laku yang merangkumi semua yang diperlukan untuk menjalankan sekeping perisian.
-
Enjin Kontena: Ini ialah perisian asas yang memanfaatkan kernel sistem hos untuk mencipta bekas.
Aliran kerja pengasingan kontena melibatkan langkah-langkah berikut:
- Masa jalan kontena menarik imej bekas yang diperlukan.
- Imej dimuatkan ke dalam enjin kontena.
- Enjin kontena mencipta persekitaran terpencil menggunakan ruang nama, cgroup dan sistem fail imej.
- Aplikasi dalam bekas kemudiannya dilaksanakan, diasingkan daripada bekas lain dan sistem hos.
Ciri Utama Pengasingan Bekas
- Keselamatan: Bekas diasingkan antara satu sama lain, yang menghalang kerentanan atau pepijat dalam satu bekas daripada menjejaskan yang lain.
- Kawalan Sumber: Melalui cgroup, bekas mempunyai bahagian terkawal sumber sistem, yang menghalang mana-mana bekas tunggal daripada memonopoli sumber.
- mudah alih: Pengasingan bekas memastikan bahawa perisian berjalan secara konsisten dalam persekitaran yang berbeza dengan merangkum aplikasi dan kebergantungannya ke dalam satu unit.
- Kecekapan: Bekas adalah ringan kerana ia berkongsi kernel hos, dan bermula lebih cepat daripada VM tradisional.
Jenis Pengasingan Bekas
Walaupun idea asas pengasingan kontena kekal sama, platform yang berbeza telah berkembang untuk menyediakan pengasingan dalam pelbagai cara. Jadual di bawah menggariskan beberapa platform kontena utama dan aspek uniknya:
Platform Kontena | Penerangan |
---|---|
Docker | Menyediakan API peringkat tinggi untuk menyediakan bekas ringan yang menjalankan proses secara berasingan. |
LXC (Bekas Linux) | Menawarkan persekitaran sedekat mungkin dengan pemasangan Linux standard tanpa memerlukan kernel yang berasingan. |
Rkt (Roket) | Direka untuk persekitaran pelayan dengan tumpuan pada keselamatan, kesederhanaan dan kebolehkomposisian. |
bekas | Masa jalan kontena peringkat tinggi yang mengurus kitaran hayat kontena yang lengkap, termasuk storan, pengedaran imej dan antara muka rangkaian. |
CRI-O | Masa jalan kontena ringan khusus untuk Kubernetes, menawarkan keseimbangan antara kelajuan aplikasi logam kosong dan abstraksi mikroVM. |
Menggunakan Pengasingan Bekas: Masalah dan Penyelesaian
Pengasingan bekas mempunyai pelbagai tujuan dalam pembangunan dan penggunaan perisian, termasuk penyepaduan berterusan/penyampaian berterusan (CI/CD), seni bina perkhidmatan mikro dan aplikasi asli awan.
Walau bagaimanapun, cabaran boleh timbul, seperti:
- Kebimbangan Keselamatan: Walaupun diasingkan, bekas berkongsi kernel hos, menjadikannya permukaan serangan yang berpotensi. Penyelesaian termasuk kemas kini dan tampalan biasa, dan menggunakan alat keselamatan tambahan seperti Seccomp, AppArmor atau SELinux.
- Overhed Prestasi: Terlalu banyak bekas boleh menyebabkan pertikaian sumber sistem. Pengurusan sumber yang cekap dan pengimbangan beban boleh membantu mengurangkan isu ini.
- Kerumitan: Menguruskan banyak bekas, terutamanya dalam seni bina perkhidmatan mikro, boleh menjadi rumit. Alat orkestrasi kontena seperti Kubernetes atau Docker Swarm boleh mengurus kerumitan ini.
Membandingkan Pengasingan Bekas dengan Istilah Serupa
Pengasingan bekas tidak boleh dikelirukan dengan virtualisasi, walaupun kedua-duanya menyediakan persekitaran terpencil untuk aplikasi dijalankan.
- Mesin Maya (VM): VM adalah berdasarkan meniru hos yang lengkap, masing-masing dengan sistem pengendaliannya sendiri. VM lebih berat dan mempunyai masa but lebih lama berbanding bekas.
- Bekas: Bekas berkongsi kernel OS hos, menjadikannya ringan dan lebih pantas untuk but. Mereka menyediakan pengasingan peringkat proses dan bukannya pengasingan peringkat sistem, seperti dalam VM.
Perspektif dan Teknologi Masa Depan dalam Pengasingan Bekas
Melihat ke arah masa depan, teknologi pengasingan kontena dijangka bertambah baik, terutamanya dari segi keselamatan. Dengan penggunaan WebAssembly (Wasm) dan eBPF (Penapis Paket Berkeley lanjutan), kami mungkin melihat bekas generasi baharu yang lebih kecil, lebih pantas dan lebih selamat.
Konsep mikroVM juga semakin mendapat perhatian. MicroVM seperti Firecracker memberikan kelebihan keselamatan VM tradisional dan kecekapan sumber bekas, menjadikannya sesuai untuk persekitaran berbilang penyewa.
Pelayan Proksi dan Pengasingan Bekas
Pelayan proksi boleh mendapat manfaat yang ketara daripada pengasingan kontena. Sebagai penyedia proksi, seperti OneProxy, mengendalikan data berbilang pelanggan, pengasingan bekas boleh membantu mengasingkan setiap operasi pelanggan. Ini meningkatkan keselamatan, kerana walaupun satu aktiviti pelanggan terjejas, yang lain tetap tidak terjejas.
Menggunakan platform orkestrasi kontena, penyedia proksi boleh mengurus kitaran hayat beribu-ribu pelayan proksi yang digunakan sebagai bekas dengan cekap. Pendekatan ini meningkatkan kebolehskalaan, kebolehselenggaraan dan toleransi kesalahan.
Pautan Berkaitan
Untuk maklumat lanjut tentang Pengasingan Bekas, rujuk sumber berikut:
- Docker: Gambaran Keseluruhan Docker Compose
- Kubernetes: Apakah Kubernetes?
- LXC: Bekas Linux
- CRI-O: Masa Jalanan Kontena Ringan untuk Kubernetes
- Mercun: MikroVM Selamat dan Pantas untuk Pengkomputeran Tanpa Pelayan
Pengasingan bekas adalah teras kepada gelombang semasa aplikasi asli awan, menawarkan janji penggunaan aplikasi yang teguh, berskala dan selamat. Perkaitannya dalam industri teknologi, terutamanya dalam sektor seperti penyedia pelayan proksi, akan terus berkembang.