Kavram - Uygulama dağıtma
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?
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.