Skip to main content

KUBERNETES

Kubernetes diagram

Mundarija

  1. Kubernetes Nima?
  2. Kubernetes Tarixi
  3. Nima uchun Kubernetes?
  4. Kubernetes Arxitekturasi
  5. Asosiy Kontseptsiyalar

Kubernetes Nima?

Ta'rif va Umumiy Ko'rinish

Kubernetes (k8s deb ham ataladi, chunki "k" va "s" o'rtasida 8 ta harf bor) - bu konteynerlashtrilgan ilovalarni avtomatik tarzida deploy qilish, masshtablash va boshqarish uchun mo'ljallangan ochiq kodli platformadir. Bu container orchestration tizimi bo'lib, zamonaviy mikroservis arxitekturasida asosiy vosita hisoblanadi.

Asosiy Maqsad

Kubernetes asosiy maqsadi - dasturchilar va DevOps muhandislariga infratuzilma bilan bog'liq murakkabliklarni yashirib, ilovalarni boshqarishni soddalashtirishdir. Bu platforma quyidagi asosiy vazifalarni bajaradi:

  1. Deklarativ Konfiguratsiya: Siz tizimning kerakli holatini (desired state) belgilaysiz, Kubernetes esa bu holatni ta'minlash uchun zarur barcha amallarni bajaradi.

  2. Avtomatik Orkestrlash: Konteynerlarni avtomatik ravishda joylashtirish, ishga tushirish va boshqarish.

  3. Self-Healing: Noto'g'ri ishlayotgan konteynerlarni avtomatik ravishda qayta ishga tushirish yoki almashtirish.

  4. Masshtablash: Ilovalarni avtomatik yoki qo'lda horizontal va vertikal masshtablash.

  5. Load Balancing: Trafikni konteynerlar o'rtasida teng taqsimlash.

Kubernetes Ekotizimi

Kubernetes - bu faqat orkestrlash platformasi emas, balki butun ekotizimdir:

  • Core Kubernetes: Asosiy platforma
  • CNCF Projects: Kubernetes bilan ishlash uchun to'plangan yuzlab loyihalar
  • Cloud Providers: AWS, Google Cloud, Azure kabi provayderlarning managed servislari
  • Community Tools: Helm, Kustomize, Istio, Prometheus va boshqalar

Kubernetes Tarixi

Google'ning Borg va Omega Sistemalari

Kubernetes Google'ning 15 yillik tajribasiga asoslangan. Google ichki infratuzilmasida Borg va Omega nomli ikkita muhim tizim ishlatilgan:

Borg Tizimi (2003-2004):

  • Google'ning birinchi konteyner boshqarish tizimi
  • Millionlab konteynerlarni boshqarish imkoniyati
  • Resource scheduling va allocation
  • Fault tolerance va high availability

Omega Tizimi (2013):

  • Borg'ning takomillashtirilgan versiyasi
  • Yanada moslashuvchan arxitektura
  • Yaxshilangan scheduling algoritmlari
  • Distributed architecture

Kubernetes'ning Tug'ilishi

2014-yil, Iyun:

  • Google tomonidan Kubernetes loyihasi e'lon qilindi
  • Ochiq kodli (open-source) sifatida chiqarildi
  • Go dasturlash tilida yozildi
  • Apache 2.0 litsenziyasi ostida

2015-yil, Iyul:

  • Kubernetes 1.0 versiyasi chiqarildi
  • Google va Linux Foundation tomonidan Cloud Native Computing Foundation (CNCF) tashkil etildi
  • Kubernetes CNCF'ning birinchi loyihasi bo'ldi

2016-2018:

  • Kubernetes industrial standartga aylandi
  • Barcha yirik cloud provayderlar qo'llab-quvvatlashni boshladi
  • Kubernetes keng qamrovli qabul qilindi

2018-dan buyon:

  • Kubernetes eng mashhur container orchestration platformasi
  • 90%+ cloud-native ilovalar Kubernetes'da ishlamoqda
  • CNCF'ning eng muvaffaqiyatli loyihasi

Nomi va Ma'nosi

"Kubernetes" nomi yunon tilidan kelib chiqqan va "rul'chi" yoki "kema boshqaruvchisi" degan ma'noni anglatadi. Logo'dagi rulning 7 ta nuqtasi 7 ta original Google muhandisiga ishora qiladi.


Nima uchun Kubernetes?

An'anaviy Deployment vs Zamonaviy Yondashuv

Traditional/Physical Deployment Era

Xususiyatlari:

  • Ilovalar to'g'ridan-to'g'ri fizik serverlarda ishga tushirilgan
  • Resurslar ajratilmagan (no resource isolation)
  • Bir serverda bir nechta ilova ishlasa, resurs konfliktlari yuzaga keladi

Muammolar:

  • Agar bitta ilova barcha resurslarni iste'mol qilsa, boshqalari zarar ko'radi
  • Masshtablash qimmat (yangi fizik server sotib olish kerak)
  • Resource utilization past (serverlar to'liq ishlatilmaydi)
  • Maintenance murakkab

Virtualized Deployment Era

Xususiyatlari:

  • Virtual Machines (VMs) orqali resurslar ajratilgan
  • Bir fizik serverda bir nechta VM ishlatish mumkin
  • Hypervisor (VMware, KVM, Hyper-V) orqali boshqariladi

Afzalliklar:

  • Yaxshiroq resource isolation
  • Xavfsizlik yaxshilandi
  • Oson masshtablash
  • Hardware'dan mustaqillik

Muammolar:

  • Har bir VM to'liq OS kerak (heavy weight)
  • Boot vaqti sekin (daqiqalar)
  • Resource overhead yuqori
  • Portability chegaralangan

Container Deployment Era

Xususiyatlari:

  • Konteynerlar OS kernelini baham ko'radi
  • Lightweight va tez
  • Microseconds ichida ishga tushadi
  • Portable (istalgan joyda ishlaydi)

Afzalliklar:

  • Agile: Tez yaratish va deploy qilish
  • Portable: Lokal mashina, cloud, hybrid - hamma joyda bir xil ishlaydi
  • Efficient: Kam resurs talab qiladi
  • Isolated: Har bir konteyner ajratilgan muhitda ishlaydi
  • Consistent: Development, testing, production - hamma joyda bir xil

Muammolar (Kubernetes kelib chiqish sababi):

  • Ko'p konteynerlarni qo'lda boshqarish qiyin
  • Scaling murakkab
  • Networking va service discovery muammolari
  • Storage boshqaruvi qiyin
  • Zero-downtime deployment qiyin
  • Load balancing kerak

Kubernetes Bu Muammolarni Qanday Hal Qiladi?

1. Avtomatik Orkestrlash

Kubernetes konteynerlarni avtomatik ravishda to'g'ri joyga joylashtiradi (scheduling):

  • Available resurslarni hisobga oladi
  • Hardware va software requirement'larni tekshiradi
  • Affinity va anti-affinity qoidalarini qo'llaydi
  • Resource requests va limits'ga amal qiladi

2. Self-Healing

Kubernetes muammoli konteynerlarni avtomatik tuzatadi:

  • Noto'g'ri ishlayotgan konteynerlarni qayta ishga tushiradi
  • O'lib qolgan konteynerlarni almashtiradi
  • Health check'lar orqali holatni kuzatadi
  • Tayyor bo'lmagan konteynerlarni trafikdan ajratadi

3. Horizontal va Vertikal Masshtablash

Horizontal Scaling:

  • Pod'lar sonini avtomatik oshirish yoki kamaytirish
  • CPU/Memory utilization'ga qarab
  • Custom metrics asosida (masalan, request count)

Vertical Scaling:

  • Mavjud pod'larga ko'proq resurs berish
  • Resource limits'ni dinamik o'zgartirish

4. Deklarativ Konfiguratsiya

YAML/JSON fayllar orqali:

apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80

Siz faqat "3 ta nginx pod kerak" deb aytasiz, Kubernetes qolgani haqida o'ylaydi.

5. Service Discovery va Load Balancing

Kubernetes avtomatik ravishda:

  • Konteynerlar uchun DNS nomlarini beradi
  • Service endpoint'larini boshqaradi
  • Trafikni pod'lar orasida taqsimlaydi
  • Internal va external load balancing

6. Storage Orchestration

Kubernetes turli xil storage sistemalarini qo'llab-quvvatlaydi:

  • Local storage
  • Cloud storage (AWS EBS, Google Persistent Disk, Azure Disk)
  • Network storage (NFS, iSCSI, Ceph)
  • Dinamik volume provisioning

7. Automated Rollouts va Rollbacks

Zero-downtime deployment:

  • Rolling updates (bosqichma-bosqich yangilash)
  • Blue-green deployments
  • Canary deployments
  • Avtomatik rollback agar muammo yuzaga kelsa

8. Secret va Configuration Management

  • Parollar, tokenlar, SSH keys'ni xavfsiz saqlash
  • Configuration'larni kod'dan ajratish
  • Environment-specific settings
  • Runtime'da secret injection

9. Batch Execution

  • One-time jobs
  • Scheduled jobs (cron)
  • Parallel processing
  • Work queue pattern

Kubernetes Arxitekturasi

Umumiy Ko'rinish

Kubernetes cluster ikkita asosiy qismdan iborat:

  1. Control Plane (Master Nodes): Cluster'ni boshqaradi
  2. Worker Nodes: Amaliy ilovalar ishlaydi

Control Plane Komponentlari

1. API Server (kube-apiserver)

Vazifasi: API Server - bu Kubernetes'ning "miyasi". Bu cluster'dagi barcha operatsiyalar uchun markaziy nuqta.

Funktsiyalari:

  • REST API endpoint'larini taqdim etadi
  • Barcha so'rovlarni qabul qiladi va validate qiladi
  • etcd bilan o'zaro aloqa qiladi
  • Authentication va authorization
  • Admission control

Qanday ishlaydi:

kubectl → API Server → etcd

Controllers, Scheduler

Port: 6443 (HTTPS)

Misol so'rov:

kubectl get pods
# Bu aslida quyidagi API call:
GET https://api-server:6443/api/v1/namespaces/default/pods

2. etcd

Vazifasi: etcd - bu distributed key-value store bo'lib, cluster'ning barcha ma'lumotlarini saqlaydi.

Xususiyatlari:

  • Distributed va highly-available
  • Consistency: Raft consensus algorithm
  • Key-value store (har bir key bir qiymatga ega)
  • Watch mechanism (o'zgarishlarni kuzatish)

Nima saqlanadi?

  • Cluster state (barcha resource'lar)
  • Configuration data
  • Metadata
  • Secrets (encrypted)

Muhimligi: etcd - bu "haqiqat manbai" (source of truth). Agar etcd yo'qolsa, cluster ma'lumotlari yo'qoladi.

Backup muhim! etcd'ning muntazam backup'ini olish zarur.

Port: 2379 (client), 2380 (peer communication)

3. Scheduler (kube-scheduler)

Vazifasi: Yangi yaratilgan pod'larni qaysi node'da ishga tushirish kerakligini aniqlaydi.

Scheduling Jarayoni:

Bosqich 1: Filtering (Saralash)

  • Node'larni filtering qiladi
  • Pod requirement'lariga javob bermaydigan node'larni chiqarib tashlaydi

Filtering kriteriylari:

  • Resource requirements (CPU, Memory)
  • Node selector
  • Affinity/Anti-affinity rules
  • Taints va tolerations
  • Volume requirements

Bosqich 2: Scoring (Baholash)

  • Qolgan node'larni baholaydi
  • Har bir node'ga ball beradi
  • Eng yuqori ball olgan node'ni tanlaydi

Scoring kriteriylari:

  • Resource balance
  • Pod spread (pod'larni teng taqsimlash)
  • Image locality (image allaqachon mavjudmi?)
  • Custom priorities

Misol:

Agar siz quyidagi pod yaratsa:

apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx
resources:
requests:
memory: "64Mi"
cpu: "250m"

Scheduler:

  1. Barcha node'larni tekshiradi
  2. Kamida 64Mi memory va 250m CPU bo'lgan node'larni topadi
  3. Eng mos node'ni tanlaydi
  4. Pod'ni shu node'ga assign qiladi

4. Controller Manager (kube-controller-manager)

Vazifasi: Controller'larni ishga tushiradi va boshqaradi. Har bir controller alohida jarayon bo'lib, cluster'ning ma'lum bir qismini boshqaradi.

Asosiy Controller'lar:

a) Node Controller:

  • Node'larni monitoring qiladi
  • Node heartbeat'larini tekshiradi
  • Node noto'g'ri ishlasa harakatlarni boshlaydi

b) Replication Controller:

  • Kerakli miqdorda pod'lar ishlab turganini ta'minlaydi
  • Agar pod o'lsa, yangisini yaratadi

c) Endpoints Controller:

  • Service va pod'lar o'rtasidagi bog'lanishni boshqaradi
  • Endpoints obyektini yangilaydi

d) Service Account & Token Controllers:

  • Yangi namespace'lar uchun default account yaratadi
  • API access token'larini boshqaradi

e) Namespace Controller:

  • Namespace o'chirilganda barcha resurslarni tozalaydi

Controller Loop (Control Loop):

Har bir controller doimiy sikl ichida ishlaydi:

1. Hozirgi holatni o'qi (read current state)

2. Kerakli holat bilan solishtir (compare with desired state)

3. Farq bormi? (is there a difference?)

4. Ha: Harakatlarni boshla (take action)

5. Qayta 1-bosqichga o't (repeat)

Bu doimiy sikl tizimni desired state'ga yaqin tutadi.

5. Cloud Controller Manager (CCM)

Vazifasi: Cloud provider bilan integratsiya. Faqat cloud'da ishlatiladi.

Controller'lar:

  • Node Controller: Cloud provider'dan node ma'lumotlarini oladi
  • Route Controller: Network route'larni sozlaydi
  • Service Controller: Cloud load balancer'larni boshqaradi

Misol (AWS):

  • LoadBalancer type Service yaratganingizda
  • CCM AWS ELB yaratadi
  • ELB'ni service bilan bog'laydi

Worker Node Komponentlari

1. Kubelet

Vazifasi: Har bir node'da ishlaydigan agent. Pod'larni boshqaradi.

Funktsiyalari:

  • API Server'dan pod spec'larini oladi
  • Container runtime bilan gaplashadi
  • Pod'larni ishga tushiradi va to'xtatadi
  • Pod va konteyner health'ini monitor qiladi
  • API Server'ga node va pod status'ini yuboradi

Qanday ishlaydi:

  1. API Server PodSpec yuboradi
  2. Kubelet container runtime'ga buyruq beradi
  3. Container runtime konteynerlarni yaratadi
  4. Kubelet pod holatini kuzatadi
  5. Status'ni API Server'ga yuboradi

Health Checks:

Kubelet uchta turdagi probe'lar ishlata oladi:

a) Liveness Probe:

  • Konteyner ishlab turibmi?
  • Fail bo'lsa → konteyner restart qilinadi

b) Readiness Probe:

  • Konteyner trafikni qabul qilishga tayyormi?
  • Fail bo'lsa → service endpoint'dan olib tashlanadi

c) Startup Probe:

  • Konteyner ishga tushganmi?
  • Sekin ishga tushadigan konteynerlar uchun

Port: 10250 (API), 10255 (read-only API)

2. Container Runtime

Vazifasi: Konteynerlarni ishga tushirish.

Qo'llab-quvvatlanadigan Runtime'lar:

a) containerd:

  • Eng ko'p ishlatiladigan
  • Docker'dan ajratilgan
  • CNCF loyihasi
  • Yengil va tez

b) CRI-O:

  • Kubernetes uchun maxsus
  • OCI-compatible
  • Minimalist

c) Docker (deprecated):

  • Kubernetes 1.20'dan boshlab deprecated
  • Kubernetes 1.24'da o'chirildi
  • Dockershim orqali ishlagan

Container Runtime Interface (CRI):

  • Kubernetes va container runtime o'rtasidagi standart interfeys
  • Plugin arxitekturasi
  • Runtime'ni osongina almashtirish imkoniyati

3. kube-proxy

Vazifasi: Network proxy. Service abstraction'ni implement qiladi.

Funktsiyalari:

  • Network rules'ni boshqaradi (iptables yoki IPVS)
  • Service IP'larini real pod IP'lariga yo'naltiradi
  • Load balancing
  • Service discovery

Ishlash Rejimi:

a) iptables mode (default):

Service IP (10.96.0.1:80)
↓ (iptables rules)
Pod IP (10.244.1.5:80) yoki (10.244.2.3:80)

b) IPVS mode:

  • Yanada samarali
  • Ko'proq load balancing algoritmlari
  • Katta cluster'lar uchun yaxshi

Misol:

Service:

apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: MyApp
ports:
- port: 80
targetPort: 9376

kube-proxy quyidagilarni qiladi:

  1. Service uchun virtual IP yaratadi (ClusterIP)
  2. iptables/IPVS rules qo'shadi
  3. Trafikni backend pod'larga yo'naltiradi
  4. Load balancing qiladi

Add-on'lar

Kubernetes o'zida ba'zi core funktsiyalar yo'q. Ular add-on'lar orqali qo'shiladi:

1. DNS (CoreDNS)

Vazifasi: Cluster ichidagi DNS server.

Funktsiyalari:

  • Service'lar uchun DNS record yaratadi
  • Pod'lar DNS orqali service'larni topishi mumkin

Misol:

# Service name: my-service
# Namespace: default

# Pod ichidan:
curl http://my-service.default.svc.cluster.local
# yoki qisqasi:
curl http://my-service

2. Dashboard

Web-based UI. Cluster'ni browser orqali boshqarish.

3. Container Resource Monitoring

Prometheus, Metrics Server va boshqalar.

4. Cluster-level Logging

Fluentd, Elasticsearch, Kibana (EFK stack).


Asosiy Kontseptsiyalar

Pod

Ta'rif: Pod - Kubernetes'dagi eng kichik va asosiy deploy birlik. Bir yoki bir nechta konteynerlarni o'z ichiga oladi.

Xususiyatlari:

  • Bir pod bitta IP address'ga ega
  • Ichidagi konteynerlar localhost orqali gaplashadi
  • Shared storage (volumes)
  • Ephemeral (vaqtinchalik) - pod o'chsa, yangi pod yangi IP bilan yaratiladi

Qachon bir nechta konteyner bitta pod'da?

Faqat quyidagi holatlarda:

  • Konteynerlar bir-biriga juda bog'liq (tightly coupled)
  • Bir xil lifecycle
  • Resource sharing kerak

Misol:

  • Web server + Log collector
  • Application + Sidecar proxy (Envoy, Istio)

Oddiy Pod YAML:

apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.19
ports:
- containerPort: 80

Multi-container Pod:

apiVersion: v1
kind: Pod
metadata:
name: multi-container-pod
spec:
containers:
- name: nginx
image: nginx:1.19
ports:
- containerPort: 80
- name: log-aggregator
image: busybox
command: ['sh', '-c', 'tail -f /var/log/nginx/access.log']

Node

Ta'rif: Node - bu cluster'dagi worker mashina (fizik yoki virtual).

Node Komponentlari:

  • Kubelet
  • Container Runtime
  • kube-proxy

Node Holatlari:

  1. Ready: Node sog'lom va pod'larni qabul qilishi mumkin
  2. NotReady: Node muammoli, yangi pod'lar joylanmaydi
  3. Unknown: Node bilan aloqa yo'q

Node Ma'lumotlari:

kubectl get nodes -o wide

Output:

NAME     STATUS   ROLES    AGE   VERSION   INTERNAL-IP   EXTERNAL-IP
node-1 Ready master 10d v1.28.0 10.0.1.10 <none>
node-2 Ready worker 10d v1.28.0 10.0.1.11 <none>

Node Capacity: Har bir node o'zining capacity'siga ega:

capacity:
cpu: "4"
memory: "8Gi"
pods: "110"

Namespace

Ta'rif: Namespace - bu cluster ichida virtual cluster yaratish uchun mexanizm. Resource'larni guruhlash va ajratish imkonini beradi.

Default Namespace'lar:

  1. default: Oddiy resource'lar uchun
  2. kube-system: Kubernetes tizim komponentlari
  3. kube-public: Hammaga ochiq ma'lumotlar
  4. kube-node-lease: Node heartbeat'lari

Namespace Yaratish:

apiVersion: v1
kind: Namespace
metadata:
name: development

yoki:

kubectl create namespace development

Namespace'da Resource Yaratish:

apiVersion: v1
kind: Pod
metadata:
name: nginx
namespace: development
spec:
containers:
- name: nginx
image: nginx

Foydalanish holatlari:

  • Development, Staging, Production'ni ajratish
  • Turli jamoalar (teams) uchun
  • Multi-tenant cluster'lar

Labels va Selectors

Labels:

Labels - bu key-value juftliklari bo'lib, obyektlarni tashkil qilish uchun ishlatiladi.

Misol:

metadata:
labels:
environment: production
app: nginx
tier: frontend
version: "1.0"

Naming Conventions:

  • Harflar, raqamlar, tire, nuqta ishlatiladi
  • 63 belgidan kam
  • Harf yoki raqam bilan boshlanishi va tugashi kerak

Selectors:

Selector'lar label'lar orqali obyektlarni tanlaydi.

Equality-based:

selector:
environment: production
tier: frontend

Set-based:

selector:
matchExpressions:
- key: environment
operator: In
values:
- production
- staging
- key: tier
operator: NotIn
values:
- backend

kubectl bilan:

# Barcha production pod'lar
kubectl get pods -l environment=production

# Production va frontend
kubectl get pods -l environment=production,tier=frontend

# Set-based
kubectl get pods -l 'environment in (production,staging)'

Annotations

Ta'rif: Annotations - bu metadata bo'lib, tool'lar va library'lar uchun ma'lumot saqlaydi.

Labels vs Annotations:

LabelsAnnotations
Selectors uchunMetadata uchun
Qisqa qiymatlarUzun qiymatlar mumkin
Tashkiliy maqsadMa'lumotli maqsad

Misol:

metadata:
annotations:
description: "Nginx web server for production"
contact: "devops@company.com"
last-updated: "2024-01-15"
build-version: "v1.2.3-abc123"

Kubernetes Cluster Tuzilishi

Cluster Tiplari

1. Single-Node Cluster

Xususiyatlari:

  • Bitta node (master + worker)
  • Development va testing uchun
  • Resource minimal

Misollar:

  • Minikube
  • Kind (Kubernetes in Docker)
  • K3s (single node)
  • MicroK8s

2. Multi-Node Cluster

Xususiyatlari:

  • Ko'p node'lar
  • High availability
  • Production uchun

Tipik konfiguratsiya:

  • 3 master node (HA)
  • 5-100+ worker node'lar

3. Managed Kubernetes

Cloud provider tomonidan boshqariladigan:

  • Google Kubernetes Engine (GKE)
  • Amazon Elastic Kubernetes Service (EKS)
  • Azure Kubernetes Service (AKS)
  • DigitalOcean Kubernetes

Afzalliklar:

  • Control plane boshqariladi
  • Avtomatik yangilanishlar
  • Cloud integratsiyasi

High Availability (HA) Cluster

HA Control Plane:

Kam 3 ta master node:

Master-1: API Server, Scheduler, Controller Manager
Master-2: API Server, Scheduler, Controller Manager
Master-3: API Server, Scheduler, Controller Manager

etcd-1, etcd-2, etcd-3 (alohida yoki master'lar bilan)

Load Balancer:

User/kubectl → Load Balancer → Master-1/2/3

etcd Cluster:

  • Raft consensus algorithm
  • Leader election
  • Toq son node'lar (3, 5, 7)

Networking

Kubernetes networking 4 ta asosiy muammoni hal qiladi:

  1. Container-to-Container: Bitta pod ichida, localhost orqali
  2. Pod-to-Pod: Har bir pod unique IP, flat network
  3. Pod-to-Service: Service abstraction orqali
  4. External-to-Service: Ingress, LoadBalancer, NodePort

CNI (Container Network Interface):

  • Flannel
  • Calico
  • Weave Net
  • Cilium

Xulosa

Kubernetes - bu zamonaviy cloud-native ilovalar uchun fundamental platforma. U konteyner orkestratsiyasini soddalashtiradi va avtomatlashtirishning yuqori darajasini ta'minlaydi.

Asosiy Afzalliklar: ✅ Avtomatik orkestrlash ✅ Self-healing ✅ Horizontal va vertikal masshtablash ✅ Service discovery va load balancing ✅ Storage orkestrlash ✅ Automated rollouts va rollbacks ✅ Secret va configuration management ✅ Keng qamrovli ekotizim