Deployment Strategies: Kubernetes
Joylashtirish strategiyalari: Kubernetes
Oldingi darsda ko'rgan strategiyalarni QO'LDA amalga oshirish (serverlarni birma-bir almashtirish, trafikni kuzatish) juda ko'p ish talab qilardi. Kubernetes — konteynerlarni boshqaradigan "orkestr dirijyori" ("Why Containers?" darsida ko'rgan analogiyani eslang) — bu strategiyalarni katta qismini avtomatlashtiradi.
apiVersion: apps/v1
kind: Deployment
metadata:
name: mening-servisim
spec:
replicas: 5
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1 # bir vaqtda ko'pi bilan 1 ta server "ishlamay" turishi mumkin
maxSurge: 1 # bir vaqtda ko'pi bilan 1 ta QO'SHIMCHA server yaratilishi mumkin
template:
spec:
containers:
- name: server
image: mening-servisim:v2.0
readinessProbe:
httpGet:
path: /ready
port: 8080
livenessProbe:
httpGet:
path: /health
port: 8080replicas: 5 — "bu servisdan doim 5 ta nusxa ishlab tursin" degani. strategy: RollingUpdate — Kubernetes'ga "Deployment Strategies: Concepts" darsida ko'rgan bosqichma-bosqich almashtirishni avtomatik bajarishni buyuradi: maxUnavailable: 1 bilan bir vaqtda ko'pi bilan 1 ta eski server o'chiriladi, maxSurge: 1 bilan bir vaqtda ko'pi bilan 1 ta yangi server qo'shiladi — bu ikkalasi birgalikda, xizmat hech qachon to'liq to'xtamasdan, asta-sekin yangilanishni ta'minlaydi.
readinessProbe va livenessProbe — aynan "Health & Readiness Endpoints" darsida yozgan /health va /ready endpoint'laringizga ishora qiladi! Kubernetes har bir konteynerdan muntazam ravishda shu manzillarga so'rov yuboradi: agar readinessProbe muvaffaqiyatsiz bo'lsa, o'sha konteynerga vaqtincha trafik yubormaydi (yangi versiya hali "isinib" bo'lmagan bo'lishi mumkin); agar livenessProbe muvaffaqiyatsiz bo'lsa, konteynerni butunlay o'ldirib, qaytadan yaratadi.
Shu kursda o'rgangan hamma narsa — konfiguratsiya (muhit o'zgaruvchilari orqali), graceful shutdown, health/readiness endpoint'lar, strukturaviy loglar va metrikalar — Kubernetes'ning avtomatik joylashtirish strategiyalarini XAVFSIZ ishlatish uchun zarur poydevorni tashkil qiladi. Kubernetes'ning o'zini chuqurroq o'rganish — "Kubernetes for Go Developers" kursida (tez orada).
Key Takeaway
Key Takeaway:
Kubernetes Deployment'i RollingUpdate strategiyasi va sizning /health//ready endpoint'laringiz orqali xavfsiz, avtomatik joylashtirishni ta'minlaydi — bu kurs davomida o'rgangan barcha naqshlar (konfiguratsiya, graceful shutdown, health check) aynan shu avtomatlashtirish uchun zarur asosdir.