Ի՞նչ է կոնտեյներիզացիան և վիրտուալիզացիան:
sobes.tech AI
Պատասխան AI-ից
Վիրտուալացումը սիմուլացնում է սարքավորումները՝ թույլ տալով միաժամանակ մի քանի օպերացիոն համակարգեր գործարկել մեկ ֆիզիկական սերվերի վրա: Յուրաքանչյուր վիրտուալ մեքենա (ՎՄ) ունի իր սեփական օՀ, միջուկը, գրադարանները և ծրագրերը: Սա ապահովում է ուժեղ մեկուսացում, բայց պահանջում է զգալի ռեսուրսներ (հիշողություն, CPU, սկավառական տարածք) յուրաքանչյուր ՎՄ-ի համար:
Կոնտեյներիզացիան աշխատում է օՀ մակարդակով՝ բաժանելով օՀ միջուկը ծրագրերի միջև: Կոնտեյներն ունեն միայն ծրագիր, դրա կախվածությունները և գրադարանները: Սա դարձնում է կոնտեյներները ավելի թեթև, արագ սկսվող և քիչ ռեսուրսներ պահանջող, քան ՎՄ-ները: Մեկուսացումը հասնում է պրոցեսների և օՀ անվան տարածքների մակարդակով:
Ահա հիմնական տարբերությունները:
| Պարամետր | Վիրտուալացում | Կոնտեյներիզացիա |
|---|---|---|
| Աշխատանքի մակարդակ | Հասարակական սարքավորումներ | ՕՀ համակարգը |
| Մեկուսացում | ՕՀ և ՎՄ միջուկը | Պրոցեսներ և օՀ անվան տարածքներ |
| Ռեսուրսներ | Բարձր (յուրաքանչյուր ՎՄ-ի համար) | Նվազ (միջուկի բաժանում) |
| Արագություն | Հետաձգված ՎՄ սկսում է գործել | Արագ կոնտեյներ սկսում է գործել |
| Նկարագրության չափը | Մեծ (ներառում է օՀ) | Փոքր (միայն ծրագիր և կախվածություններ) |
| Տրանսպորտայինություն | Պահանջում է համատեղելիություն ՎՄ մակարդակով | Բարձր (աշխատում է ցանկացած հոստի վրա) |
Վիրտուալ մեքենայի կոնֆիգուրացիայի օրինակ:
// qemu/kvm կոնֆիգուրացիայի ֆայլ
[drive]
file=/var/lib/libvirt/images/my-vm.qcow2
if=virtio
bus=virtio
cache=none
[cpu]
type=host
[memory]
size=4g
Dockerfile կոնտեյների համար.
# Օգտագործում է բազային պատկերը
FROM ubuntu:20.04
# Կոնֆիգուրացնում է կախվածությունները
RUN apt-get update && apt-get install -y nginx
# Կատարվում է ծրագրի ֆայլերի պատճենում
COPY html /var/www/html
# Բացվում է պորտը
EXPOSE 80
# Ծրագրի գործարկում
CMD ["nginx", "-g", "daemon off;"]