Kavram - Uygulama dağıtma

Tamamlandı

Uygulamanızı Kubernetes'e dağıtmadan önce Kubernetes Dağıtımlarını gözden geçirelim ve senaryomuzdaki sınırlamalarını tartışalım.

Kubernetes Dağıtımları nedir?

A diagram that shows a Kubernetes Deployment with a label and three pods.

Kubernetes Dağıtımı, podların evrimidir. Dağıtımlar, podları ölçeği genişletmelerini sağlayan akıllı bir nesneye sarmalar. Karmaşık ağ kurallarını yapılandırmanıza gerek kalmadan uygulamanızı daha fazla yükü destekleyecek şekilde kolayca çoğaltabilir ve ölçeklendikleyebilirsiniz.

Dağıtımlar, yalnızca görüntü etiketini değiştirerek uygulamalarınızı kapalı kalma süresi olmadan güncelleştirmenize olanak tanır. Dağıtımın güncelleştirilmesi, çevrimiçi uygulamaları tek tek kapatır ve bunların yerine tüm uygulamaları silip yenilerini oluşturmak yerine en yeni sürümle değiştirir. Bu, Dağıtım'ın kullanılabilirlik üzerinde görünür bir etkisi olmadan içindeki podları güncelleştirebileceği anlamına gelir.

Dağıtımları podlar üzerinden kullanmanın birçok avantajı olsa da, senaryomuzu yeterince işleyemiyorlar.

Bu senaryo, çeşitli zamanlarda çok sayıda olay alan olay odaklı bir uygulama içerir. KEDA Ölçekleyici nesnesi veya HPA olmadan, olay sayısını işlemek için çoğaltma sayısını el ile ayarlamanız ve yük normale döndüğünde Dağıtımın ölçeğini azaltmanız gerekir.

Örnek Dağıtım bildirimi

Dağıtım bildirimimizin örnek bir parçacığı aşağıda verilmişti:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: contoso-microservice
spec:
  replicas: 10                      # Tells K8S the number of pods needed to process the Redis list items
  selector:                         # Define the wrapping strategy
    matchLabels:                    # Match all pods with the defined labels
      app: contoso-microservice     # Labels follow the `name: value` template
  template:                         # Template of the pod inside the deployment
    metadata:
      labels:
        app: contoso-microservice
    spec:
      containers:
        - image: mcr.microsoft.com/mslearn/samples/redis-client:latest
          name: contoso-microservice

Örnek bildirimde replicas 10 olarak ayarlanır. Bu, en yüksek olay sayısını işlemek için kullanılabilen gerekli çoğaltmalar için ayarlayabildiğimiz en yüksek sayıdır. Ancak bu, uygulamanın kalıcı olmayan zamanlarda çok fazla kaynak tüketmesine neden olur ve bu da kümedeki diğer Dağıtımları aç bırakabilir.

Bir çözüm, podların CPU kullanımını izlemek için tek başına bir HPA kullanmaktır. Bu, her iki yönde el ile ölçeklendirmekten daha iyi bir seçenektir. Ancak HPA, Redis listesine alınan olay sayısına odaklanmaz.

En iyi çözüm, listeyi sorgulamak ve olayları işlemek için daha fazla veya daha az pod gerekip gerekmediğini belirlemek için KEDA ve Redis ölçeklendiricisi kullanmaktır.