Konteynerlashtirish zamonaviy dasturiy ta'minotni yaratish va deploy qilishning standart usullardan biriga aylandi. Bu maqolada Docker va Kubernetes nima ekanligi, nima uchun kerakligi va qanday boshlash kerakligini amaliy misollar bilan tushuntiramiz.
Docker nima?
Docker — bu ilovalarni konteynerlarga joylashtirish vositasi. Konteyner — bu ilovaning barcha kerakli kutubxonalari, sozlamalari va muhiti bilan birga paketlangan yengil virtual muhit. "Mening kompyuterimda ishlayapti" muammosini hal qiladi.
# Oddiy Dockerfile misoli FROM node:20-alpine WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 3000 CMD ["node", "server.js"]
Docker asosiy buyruqlari
docker build -t myapp .— Image yaratishdocker run -p 3000:3000 myapp— Konteyner ishga tushirishdocker ps— Ishlab turgan konteynerlar ro'yxatidocker-compose up— Ko'p konteynerni boshqarishdocker stop [id]— Konteynerni to'xtatish
Kubernetes nima?
Kubernetes (K8s) — bu konteynerlarni orkestrlash platformasi. Agar Docker bitta konteynerni boshqarsa, Kubernetes yuzlab va minglab konteynerlarni avtomatik boshqaradi.
Docker — bu bitta xonani boshqarish, Kubernetes — bu butun mehmonxonani boshqarish.
Kubernetes asosiy tushunchalari
- Pod — eng kichik deploy birligi, 1+ konteyner
- Service — podlarga tarmoq kirish nuqtasi
- Deployment — podlarni boshqarish va scaling
- Namespace — resurslarni izolyatsiya qilish
- Ingress — tashqi trafikni boshqarish
# Kubernetes Deployment misoli
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
replicas: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: myapp:latest
ports:
- containerPort: 3000
Qachon Docker, qachon Kubernetes?
Faqat Docker yetarli:
- Kichik loyihalar (1-5 konteyner)
- Development muhiti
- Oddiy deploy jarayonlari
Kubernetes kerak:
- Katta microservices arxitektura
- Avtomatik scaling kerak bo'lganda
- High availability talab qilinganda
- Ko'p serverda ishlash kerak bo'lganda
Boshlash uchun amaliy qadamlar
- Docker Desktop o'rnating
- Oddiy ilovani Dockerfile bilan konteynerlang
- Docker Compose bilan ko'p servisli ilova yarating
- Minikube bilan lokal Kubernetes klasterini ishga tushiring
- Kubernetes deployment yarating va scaling qiling
Xulosa
Docker va Kubernetes zamonaviy dasturchi uchun zarur ko'nikmalar. Docker bilan boshlang, keyin Kubernetes ga o'ting. Amaliyot eng yaxshi o'qituvchi!