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 yaratish
  • docker run -p 3000:3000 myapp — Konteyner ishga tushirish
  • docker ps — Ishlab turgan konteynerlar ro'yxati
  • docker-compose up — Ko'p konteynerni boshqarish
  • docker 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!