GoDasturchi
Deployment Strategies: Kubernetes

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.

deployment.yaml
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: 8080

replicas: 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.

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.

deployment.yaml
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: 8080

replicas: 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.