De la haute disponibilit éavec Azure Kubernetes 서비스: le focus 응용 프로그램!
Rappel-sur-le 배율 조정
Il y a deux possibilités de scale.
수직 배율 조정
Si un traitement dans un pod requisite plus de resources mémoire ou vCPU que ce que vous avez prévu mais que ce traitement ne peuxêtre réparti sur plusieurs instances,vous devrez allouer plus de resources votre pod.parle-alors에 대한 척도 수직 제거.
수평 배율 조정
Cette méthode permet de multiplier le nombre d'instance d'une application si l'instance est trop sollicitée afin de repartir la charges.
Aujourd'hui nous allons nous concenter sur le scaling horizontal et la façon de l'automatiser.
L'autoscaling sur les pods
Le scaling consiste a augmenter ou diminuer Le nombre d'instances d'une 응용 프로그램.Cela permet par example de résisteráun pic de charge si votre service est fortem sollicitépar moments et très peu le reste du temps.peut 설정기gr-ceá Kubernetes l'upscale et le downscale pours'adapter en temps r é el aux besoins de nos usiliateurs에서.
만누엘 산
선봉 임대인 dans le vif du sujet,petite précision sur le scaling:la commande kubectl scale vous permet de modifier instanta ément le nombre d'instances dont vous souhaitez disposer pour ex écuter votre application.
kubectl scale --replicas=5 deployment/myApp
Montée e en charge automatique 회사
집단 분리
Je provisionne un AKS avec le monitoring activé,comme expliqueéiciet Je vais user un container registry pour déployer mon app comme expliqueédans cetuto.
Déploiement de mon 응용 프로그램
Voici le yaml que j'aiécrit pourmon 응용 프로그램:
LéLément qui va nous intéresser aujourd'hui est“resources”avec la définition des propriétés requests et limits.
요청, c'est ceque le pod est garanti d'avoir á sa disposition pour fonctionner.Ici mon container aura donc 100m de CPU et 15Mi de RAM.
용기 자원 집합에 제한됩니다.Il ne pourra pas USERR plus de 500m de CPU et 512Mi de RAM.
Si le pod consomme trop de resources:
Le scaling consiste a augmenter ou diminuer Le nombre d'instances d'une 응용 프로그램.Cela permet par example de résisteráun pic de charge si votre service est fortem sollicitépar moments et très peu le reste du temps.peut 설정기gr-ceá Kubernetes l'upscale et le downscale pours'adapter en temps r é el aux besoins de nos usiliateurs에서.
만누엘 산
선봉 임대인 dans le vif du sujet,petite précision sur le scaling:la commande kubectl scale vous permet de modifier instanta ément le nombre d'instances dont vous souhaitez disposer pour ex écuter votre application.
kubectl scale --replicas=5 deployment/myApp
Montée e en charge automatique 회사
집단 분리
Je provisionne un AKS avec le monitoring activé,comme expliqueéiciet Je vais user un container registry pour déployer mon app comme expliqueédans cetuto.
Déploiement de mon 응용 프로그램
Voici le yaml que j'aiécrit pourmon 응용 프로그램:
LéLément qui va nous intéresser aujourd'hui est“resources”avec la définition des propriétés requests et limits.
요청, c'est ceque le pod est garanti d'avoir á sa disposition pour fonctionner.Ici mon container aura donc 100m de CPU et 15Mi de RAM.
용기 자원 집합에 제한됩니다.Il ne pourra pas USERR plus de 500m de CPU et 512Mi de RAM.
Si le pod consomme trop de resources:
mon 응용 프로그램 avec un 배포:
Kubectl apply –f .\deploytoaks.yaml
아주튼 드라헤파
La commande kubectl autoscale crée un objet HorizontalPodAutoscaler(HPA)qui cible une resource spécifiée et La faitévoluer si nécessaire.Le HPA ajuste périodiquement Le nombre d'instances dupliqueées en founction de la conommmation CPU ou RAM.
En cas de modification de la charge,cet objetaugmente ou réduitle nombre d'instances de l'application.
Ici,je vais demander un HPA sur mon application aspwebsitenetcore.Je lui indique de scaler entre 2 et 10 réplicats.L'upcale se fera si le pourcentage CPU consmmé dé passe les 10% de ce qui est alloué, ici c'est donc 10% de consmmé sur les 5억 개 CPU 핵심.
kubectl autoscale deployment aspwebsitenetcore --max 10 --min 2 --cpu-percent 10
결정: Lacommande kubectl get hpa me permet d'afficher mes différents scaling mis en place surmon cluster k8s.
나는 경찰이고, 나는 경찰이다!Les appels vers mon site web seront automatiquement répartis vers ces deux pods via le loadbalancer de Kubernetes.
Si je h réxecute un get hpa,je visualize dans la colonne targets ou se situent mes conteneurs par reportála limite qu'on leur a fixée:
압력 테스트
정비원, je vais STRESTER un peu mon application et simuler un fort trafic sur mon site.toute logique에서 l'autoscaling configuré pour mon cluster AKS doit interventir et mon nombre de pods devraient se dupliquer.Pour ce faire je vais UserVegeta!
L'installation et L'utilization de L'outil est super simple.
Pour le télécharger,rendez vousici
Lacommande me permet de lancer une'attaque'펜던트 5분, 5회 상소.
echo GET http://40.121.84.148 | vegeta.exe attack -duration=5m -rate=5 -output=stress-results.bin
J'ai spécifiéun output qui me permettra insuite de générer un report comme ceci afin de constater la latence induite par mon test de charge.vegeta.exe plot -title=Results stress-results.bin > stress-results-plot.html
아세즈 라피드멘트, 데세비네멘트 정보 및 확대:
J'ai maintenant 5 크레인 d'Activf:
Puis 6:
Quand je stoppe le load,je vais constater l'inverse et voir progressive mon nombre de pods diminuer:
Jusqu'a revenir áma 상황 줄임말:
거꾸로 terminer áquel moment scale up ou down, Kubernetes는 유엔 알고리즘présentéici를 사용한다.
Un YAML을 통한 Un 자동 배율 조정 배포
Et oui,il est possible de configurer un scaling via une description yaml comme celle ci:
Je précise toujours sur quel déploiement Je veux positioner mon scaling,un nombre de pod min et max et une condition ici représentée par“targetAverageValue”sur la conommmation mémoire de mes contenners.Ici la montée en charge sera toujours entre 2 et 10 pods et le scale se fera si on dépasse les 32Mi de mémoire.
코다
métriques autres que la charge CPU et RAM에서 가능한 한 설정기의 자동 축소를 취소합니다.Pour se faire je vous inviteávous intéreseráKEDA.
Cet outil permet par 예제 de configurer un autoscale sur:
Après la gestion du scaling des pods,voyons comment configurer une montée en charge sur les nodes.
de 노드 자동 배율 조정
AKS nous offre la possibilit é d'allouer et de dé sallouer automatiquement des nodes nodes 노드 Kubernetes pour l'h é bergement de nos 응용 프로그램: c'est gr – ceá l'autoscaler de cluster.
클러스터의 Création du cluster
Demandons un cluster de 테스트:
az group create --name rg-aks --location eastus
az aks create --resource-group rg-aks --name myAKS --node-count 1 --generate-ssh-keys
자동 배율 조정 안내서
Comme vu AKS fonctionne avec un systemème de node pool.Un pool est Un regroup de nœuds dans mon cluster,chaque nœudétant une machine virtuelle Azure.
주입 커서 제조mes 노드 ilfaut cibler un 탱크:
az aks scale --resource-group rg-aks --name myAKS --node-count 3 --nodepool-name #NodePoolName#
cette 명령을 사용하여 설명되지 않은 데이터/데이터 탱크를 입력하십시오.봐라, 연못의 이름은 고용 기구다.
az aks nodepool list --resource-group rg-aks --cluster-name myAKS
Il y a maintenant 3 nœuds,donc 3 VM pouvant héberger des pods,dans notre cluster.
자동 배율 조정
Nous avons parléprécédemment des“resources”avec la définition des propriétés requests et limits.
L'autoscaler AKS는 자동화를 강화하고 POD의 자원 수요를 분석했다.
•Si les pods ne peuvent pasêtre démarrés,car il n'y a pas assez de puissance cpu/ram sur les nœuds du pool,l'autoscaler de cluster en ajuute,jusqu'atteindre la taille maximale du pool de nœuds.
•Si les nœuds sont sous utilisés et que tous les pods peuventêtre déployés en utilisant moins de noeuds,l'autoscaler de cluster déplace les pods puis supprime des nœuds,jusqu'atteindre la taille minme du pool.
Pour la mise enœuvre je dois providionner un AKS avec le support de l'autoscale sur les nodes,il faut alors spécifier une taille minime et maximale Pour le pool de nœuds.
az aks create --resource-group rg-aks --name myAKSWithAutoscale --node-count 1 --vm-set-type VirtualMachineScaleSets --enable-cluster-autoscaler --min-count 1 --max-count 3
Par Ailluers,il est possible de configurer plus finement le fonctionnement du scaling via des paramètres supplyémentaies.
Par 예:
- 스캔 간격:permet de fixer la fréquence dévaluation du cluster pour unéventuel scale.Ce paramètre permettra de temporiser suiteáau scaling avant de provisionner ou supplimeránouveau une VM.La liste complète des paramètres est disponibleici
maintenant un cluster avec une VM dans le node pool dé claré에서 확장 가능한 entre 1 et 3.
하위 자동 배율 수정
Si mon cluster contient un seul nodepool,je peux user la commande:
az aks update --resource-group rg-aks --name myAKSWithAutoscale --update-cluster-autoscaler --min-count 1 --max-count 5
Simon 집단은plusieurs 노드 도구를 사용하고, je dois USERR l'instruction azaks 노드 도구 업데이트,comme ceci:
az aks nodepool update --resource-group rg-aks --cluster-name myAKSWithAutoscale --name nodepool1 --update-cluster-autoscaler --min-count 1 --max-count 5
Dernier cas d'usage,si notre cluster existe mais que l'autoscale n'a pas é configur é la création il faut l'activer via une commande sur le pool cible avec l'argument-군집 자동 축소기 사용:
az aks nodepool update --resource-group rg-aks --cluster-name myAKSWithAutoscale --name nodepool1 --enable-cluster-autoscaler --min-count 1 --max-count 5
Nous avions pré cé demment demandé 3개 노드mais suite á notre configuration de l'autoscale, le nombre de n œud redescend progressivement á 1 puisqu'il n'y a pas de charge sur mes n œuds!
Nous avons donc vu ici un second niveau d'autoscaling,Nous permettant de provisionner des nodes dynamiquement,afin de s'adapterála demande en resources des pods.
결론
Après avoir abordéla haute disponibilitécoténous avons vu aujourd'hui comment rendre nos applications résilient gr–ceál'autoscaling.잊지 마세요!premier Liue sur les pods il doit é galement être gér é sur les nodes pour une meilleure é lasticit é face á la charge를 설정합니다.
고맙습니다. 다시 시작하겠습니다. 함께 노력하겠습니다.
토마스
Reference
이 문제에 관하여(De la haute disponibilit éavec Azure Kubernetes 서비스: le focus 응용 프로그램!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/thomasrannou/de-la-haute-disponibilite-avec-azure-kubernetes-services-le-focus-apps-3l8l
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
az group create --name rg-aks --location eastus
az aks create --resource-group rg-aks --name myAKS --node-count 1 --generate-ssh-keys
az aks scale --resource-group rg-aks --name myAKS --node-count 3 --nodepool-name #NodePoolName#
az aks nodepool list --resource-group rg-aks --cluster-name myAKS
az aks create --resource-group rg-aks --name myAKSWithAutoscale --node-count 1 --vm-set-type VirtualMachineScaleSets --enable-cluster-autoscaler --min-count 1 --max-count 3
az aks update --resource-group rg-aks --name myAKSWithAutoscale --update-cluster-autoscaler --min-count 1 --max-count 5
az aks nodepool update --resource-group rg-aks --cluster-name myAKSWithAutoscale --name nodepool1 --update-cluster-autoscaler --min-count 1 --max-count 5
az aks nodepool update --resource-group rg-aks --cluster-name myAKSWithAutoscale --name nodepool1 --enable-cluster-autoscaler --min-count 1 --max-count 5
Après avoir abordéla haute disponibilitécoténous avons vu aujourd'hui comment rendre nos applications résilient gr–ceál'autoscaling.잊지 마세요!premier Liue sur les pods il doit é galement être gér é sur les nodes pour une meilleure é lasticit é face á la charge를 설정합니다.
고맙습니다. 다시 시작하겠습니다. 함께 노력하겠습니다.
토마스
Reference
이 문제에 관하여(De la haute disponibilit éavec Azure Kubernetes 서비스: le focus 응용 프로그램!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/thomasrannou/de-la-haute-disponibilite-avec-azure-kubernetes-services-le-focus-apps-3l8l텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)