Virtualisasi

Apa itu LXC?

Juga dikenal sebagai: Linux Containers
Definisi

LXC is Linux-native containerisation that isolates processes with namespaces and cgroups while sharing the host kernel. LXC is excellent inside a trust boundary you already own and weak as a multi-tenant boundary, because a kernel escape affects every container on the host.

Mengapa LXC penting

LXC sangat baik di dalam batas kepercayaan yang sudah Anda miliki dan lemah sebagai batas multi-penyewa, karena celah kernel memengaruhi setiap kontainer di host.

LXC dalam praktik

Dengan LXC Anda mendapatkan container ringan yang berbagi kernel host. Anda mengelolanya melalui rangkaian perintah lxc atau API, memantau statistik cgroup untuk tekanan CPU dan memori. Penyetelan sebagian besar adalah batas namespace dan cgroup: mengunci proses, menetapkan batas memori. Biaya jika salah adalah eksposur: kebocoran kernel membahayakan setiap container di host, jadi Anda memperlakukan host sebagai satu domain kepercayaan, dan Anda merencanakan failover di tingkat host, bukan per container.

Kesalahan umum tentang LXC

Orang memperlakukan LXC sebagai batas keamanan yang setara dengan KVM. Ini tidak benar: container berbagi kernel, sehingga kelemahan dalam kernel tersebut dapat keluar dari container mana pun. Koreksinya adalah LXC untuk isolasi dalam batas kepercayaan yang Anda miliki, bukan untuk hosting multi-tenant di mana penyewa mungkin bermusuhan.

LXC — pertanyaan umum

Apakah LXC sama dengan Docker?

Tidak. Docker dibangun di atas primitif kontainer seperti LXC tetapi menambahkan manajemen image, layering, dan orkestrasi. LXC lebih seperti VM ringan: Anda menjalankan distro lengkap di dalamnya, dan Anda mengelolanya dengan systemd atau init secara langsung. Docker tentang mengemas aplikasi; LXC tentang virtualisasi sistem.

Bisakah saya menjalankan LXC dengan kernel kustom?

Itu tergantung pada hostnya. Beberapa penyedia, seperti OnionVPS, memberikan root penuh dan mengizinkan kernel kustom, tetapi dengan LXC Anda berbagi kernel host, jadi kernel kustom tidak untuk container itu sendiri. Anda akan menggunakan KVM untuk itu. LXC terikat pada versi kernel dan konfigurasi yang disediakan host.

Lainnya dari virtualisasi

KVM
KVM adalah virtualisasi perangkat keras penuh yang dibangun ke dalam kernel Linux, memberi setiap tamu kernelnya sendiri dan isolasi yang ditegakkan perangkat keras dari penyewa lain.
OpenVZ
OpenVZ adalah virtualisasi berbasis kontainer di mana setiap instance berbagi kernel host, sehingga tamu tidak dapat memuat modul kernel atau menjalankan sistem operasi yang berbeda.
Hypervisor
Hypervisor adalah lapisan perangkat lunak yang membuat dan menjalankan mesin virtual, mengalokasikan CPU fisik, memori, dan IO di antara mereka.
Virtualisasi bersarang
Virtualisasi bersarang memungkinkan mesin virtual itu sendiri menjalankan mesin virtual, dengan mengekspos ekstensi virtualisasi prosesor ke tamu.
vCPU
vCPU adalah prosesor virtual yang disajikan ke tamu, didukung oleh waktu penjadwalan pada inti fisik atau utas.
cloud-init
cloud-init adalah mekanisme standar untuk mengonfigurasi mesin virtual pada boot pertama, menggunakan metadata yang disediakan oleh platform.