Öğretici: Azure Kubernetes Hizmeti’nde (AKS) uygulamaları ölçeklendirme
Öğreticileri izlediysanız AKS'de çalışan bir Kubernetes kümesine sahipsiniz ve örnek Azure Voting uygulamasını dağıttınız. Yedi öğreticinin beşinci parçası olan bu öğreticide, uygulamada pod’ları ölçeklendirirsiniz ve otomatik pod ölçeklendirmeyi denersiniz. Ayrıca, barındırılan iş yükleri için kümenin kapasitesini değiştirmek üzere Azure VM düğümlerinin sayısını ölçeklendirmeyi de öğrenirsiniz. Aşağıdakileri nasıl yapacağınızı öğrenirsiniz:
- Kubernetes düğümlerini ölçeklendirme
- Uygulamanızı çalıştıran Kubernetes podlarını el ile ölçeklendirme
- Uygulama ön ucunu çalıştıran otomatik ölçeklendirme podlarını yapılandırma
Sonraki öğreticilerde, Azure Vote uygulaması yeni bir sürüme güncelleştirilir.
Başlamadan önce
Önceki öğreticilerde, bir uygulama bir kapsayıcı görüntüsüne paketlendi. Bu görüntü Azure Container Registry yüklendi ve bir AKS kümesi oluşturdun. Uygulama daha sonra AKS kümesine dağıtıldı. Bu adımları henüz uygulamadıysanız ve takip etmek için Öğretici 1 – Kapsayıcı görüntüleri oluşturma ile başlayabilirsiniz.
Bu öğretici için Azure CLI 2.0.53 veya sonraki bir sürümünü çalıştırmanız gerekir. Sürümü bulmak için az --version komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.
Pod’ları el ile ölçeklendirme
Önceki öğreticilerde Azure Vote ön ucu ve Redis örneği dağıtıldığında tek bir çoğaltma oluşturulmuştu. Kümenizdeki podların sayısını ve durumunu görmek için kubectl get komutunu aşağıdaki şekilde kullanın:
kubectl get pods
Aşağıdaki örnek çıktıda bir ön uç podu ve bir arka uç podu gösterilmektedir:
NAME READY STATUS RESTARTS AGE
azure-vote-back-2549686872-4d2r5 1/1 Running 0 31m
azure-vote-front-848767080-tf34m 1/1 Running 0 31m
azure-vote-front dağıtımındaki pod sayısını el ile değiştirmek için kubectl scale komutunu kullanın. Aşağıdaki örnekte ön uç podlarının sayısı 5'e çıkarılmaktadır:
kubectl scale --replicas=5 deployment/azure-vote-front
AKS'nin ek podları başarıyla oluşturduğunı doğrulamak için kubectl get pods'u yeniden çalıştırın. Bir dakika kadar sonra podlar kümeniz içinde kullanılabilir:
kubectl get pods
READY STATUS RESTARTS AGE
azure-vote-back-2606967446-nmpcf 1/1 Running 0 15m
azure-vote-front-3309479140-2hfh0 1/1 Running 0 3m
azure-vote-front-3309479140-bzt05 1/1 Running 0 3m
azure-vote-front-3309479140-fvcvm 1/1 Running 0 3m
azure-vote-front-3309479140-hrbf2 1/1 Running 0 15m
azure-vote-front-3309479140-qphz8 1/1 Running 0 3m
Pod’ları otomatik ölçeklendirme
Kubernetes, bir dağıtımdaki pod’ların sayısını CPU kullanımı ve diğer seçili ölçümleri temel alarak ayarlamak için yatay pod otomatik ölçeklendirmeyi destekler. Ölçüm Sunucusu, Kubernetes'e kaynak kullanımı sağlamak için kullanılır ve AKS kümesi 1.10 ve üzeri sürümlerde otomatik olarak dağıtılır. AKS kümenizin sürümünü görmek için aşağıdaki örnekte gösterildiği gibi az aks show komutunu kullanın:
az aks show --resource-group myResourceGroup --name myAKSCluster --query kubernetesVersion --output table
Not
AKS kümeniz 1.10'dan küçükse Ölçüm Sunucusu otomatik olarak yüklenmez. Ölçüm Sunucusu yükleme bildirimleri, Ölçüm Sunucusu yayınlarına varlık olarak ek olarak mevcuttur. Başka bir ifadeyle bunları components.yaml BIR URL aracılığıyla yükleyebilirsiniz. Bu YAML tanımları hakkında daha fazla bilgi edinmek için beni okuma bölümünün Dağıtım bölümüne bakın.
Örnek yükleme:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml
Otomatik vericiyi kullanmak için podlar ve podlarınız için tüm kapsayıcıların CPU istekleri ve sınırları tanımlanmış olması gerekir. Dağıtımda azure-vote-front ön uç kapsayıcısı zaten 0,5 CPU sınırıyla 0,25 CPU isteğinde bulunuyor.
Bu kaynak istekleri ve sınırları, aşağıdaki örnek kod parçacığında gösterildiği gibi her kapsayıcı için tanımlanır:
containers:
- name: azure-vote-front
image: mcr.microsoft.com/azuredocs/azure-vote-front:v1
ports:
- containerPort: 80
resources:
requests:
cpu: 250m
limits:
cpu: 500m
Aşağıdaki örnek, azure-vote-front dağıtımındaki podların sayısını otomatik olarak ölçeklendirmek için kubectl autoscale komutunu kullanır. Tüm podlar genelinde ortalama CPU kullanımı, istenen kullanımlarının %50'sini aşarsa otomatik artıran pod sayısı en fazla 10 örnek olur. Daha sonra dağıtım için en az 3 örnek tanımlanır:
kubectl autoscale deployment azure-vote-front --cpu-percent=50 --min=3 --max=10
Alternatif olarak, otomatik olarak doğrulayan davranışı ve kaynak sınırlarını tanımlamak için bir bildirim dosyası oluşturabilirsiniz. Aşağıda adlı bir bildirim dosyası örneği ve ardından ve ve azure-vote-hpa.yaml 2.
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: azure-vote-back-hpa
spec:
maxReplicas: 10 # define max replica count
minReplicas: 3 # define min replica count
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: azure-vote-back
targetCPUUtilizationPercentage: 50 # target CPU utilization
---
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: azure-vote-front-hpa
spec:
maxReplicas: 10 # define max replica count
minReplicas: 3 # define min replica count
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: azure-vote-front
targetCPUUtilizationPercentage: 50 # target CPU utilization
Bildirim kubectl apply dosyasında tanımlanan otomatik bir şekilde yalıtarak uygulamak için azure-vote-hpa.yaml kullanın.
kubectl apply -f azure-vote-hpa.yaml
Otomatik ölçeklendirme durumunu görmek için kubectl get hpa komutunu şu şekilde kullanın:
kubectl get hpa
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
azure-vote-front Deployment/azure-vote-front 0% / 50% 3 10 3 2m
Birkaç dakika sonra Azure Vote uygulamasında en az yük ile, pod çoğaltmalarının sayısı otomatik olarak üçe iner. kubectl get pods komutunu tekrar kullanarak gereksiz podların kaldırıldığını görebilirsiniz.
AKS düğümlerini el ile ölçeklendirme
Önceki öğreticide yer alan komutları kullanarak Kubernetes kümenizi oluşturduysanız iki düğümü vardır. Kümenizde daha fazla veya daha az kapsayıcı iş yükü planlıyorsanız, düğüm sayısını el ile ayarlayabilirsiniz.
Aşağıdaki örnek, myAKSCluster adlı Kubernetes kümesinde düğümlerin sayısını üçe yükseltir. Komutun tamamlanması birkaç dakika sürer.
az aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 3
Küme başarıyla ölçeklendirildi, çıktı aşağıdaki örnektekine benzer:
"agentPoolProfiles": [
{
"count": 3,
"dnsPrefix": null,
"fqdn": null,
"name": "myAKSCluster",
"osDiskSizeGb": null,
"osType": "Linux",
"ports": null,
"storageProfile": "ManagedDisks",
"vmSize": "Standard_D2_v2",
"vnetSubnetId": null
}
Sonraki adımlar
Bu öğreticide, Kubernetes kümenizde farklı ölçeklendirme özellikleri kullandınız. Şunları öğrendiniz:
- Uygulamanızı çalıştıran Kubernetes podlarını el ile ölçeklendirme
- Uygulama ön ucunu çalıştıran otomatik ölçeklendirme podlarını yapılandırma
- Kubernetes düğümlerini el ile ölçeklendirme
Kubernetes’te uygulama güncelleştirmeyi öğrenmek için sonraki öğreticiye ilerleyin.