Outils pour utilisateurs

Outils du site


informatique:kebernetes:kube_scale

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
informatique:kebernetes:kube_scale [2023/12/19 08:58]
benoit [Autoscaling]
informatique:kebernetes:kube_scale [2023/12/19 09:22] (Version actuelle)
benoit [Création d'une règle d'autoscale pour le déploiement]
Ligne 9: Ligne 9:
  
 Le [[informatique:​kebernetes:​install#​installation_du_metrics_server_optionnel|Metrics Server]] est requis pour le scaling sur la base de la consommation de ressource. Le [[informatique:​kebernetes:​install#​installation_du_metrics_server_optionnel|Metrics Server]] est requis pour le scaling sur la base de la consommation de ressource.
 +
 +==== Création d'un déploiement pour le test ====
  
 Prenons par exemple le manisfeste de déploiement ci-dessous : Prenons par exemple le manisfeste de déploiement ci-dessous :
Ligne 72: Ligne 74:
   replicaset.apps/​php-apache-598b474864 ​  ​1 ​        ​1 ​        ​1 ​      17m   replicaset.apps/​php-apache-598b474864 ​  ​1 ​        ​1 ​        ​1 ​      17m
  
 +==== Création d'une règle d'​autoscale pour le déploiement ====
 +
 +Nous allons définir ci-dessous une règle d'​autoscale :
 +  kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10
 +
 +Explication :!: : Pour le déploiement **php-apache**,​ si la CPU montent à 50% on augmente le nombre de pods. Il faut minimum 1 pod et maximum 10 pourront être déployés.
 +
 +Ci-dessous l'​équivalent en fichier manifeste YAML : 
 +  apiVersion: autoscaling/​v2
 +  kind: HorizontalPodAutoscaler
 +  metadata:
 +    name: php-apache
 +  spec:
 +    maxReplicas:​ 10
 +    metrics:
 +    - resource:
 +        name: cpu
 +        target:
 +          averageUtilization:​ 50
 +          type: Utilization
 +      type: Resource
 +    minReplicas:​ 1
 +    scaleTargetRef:​
 +      apiVersion: apps/v1
 +      kind: Deployment
 +      name: php-apache
 +
 +
 +Résultat attendu : 
 +  horizontalpodautoscaler.autoscaling/​php-apache autoscaled
 +
 +Pour lister les règles d'​autoscale : 
 +  kubectl get hpa
 +
 +Résultat attendu : 
 +  NAME         ​REFERENCE ​              ​TARGETS ​  ​MINPODS ​  ​MAXPODS ​  ​REPLICAS ​  AGE
 +  php-apache ​  ​Deployment/​php-apache ​  ​0%/​50% ​   1         ​10 ​       1          3m51s
 +
 +==== Test de montée en charge et monitoring ====
 +
 +Pour le test, nous allons augmenter la charge CPU des pods ainsi:
 +  kubectl run -i --tty load-generator --rm --image=busybox:​1.28 --restart=Never -- /bin/sh -c "while sleep 0.01; do wget -q -O- http://​php-apache;​ done"
  
 +Pour voir monitorer :  ​
 +  kubectl get hpa
  
 +On peut voir la charge CPU monter et que d'​autre pods on démarrés :
 +  NAME         ​REFERENCE ​              ​TARGETS ​   MINPODS ​  ​MAXPODS ​  ​REPLICAS ​  AGE
 +  php-apache ​  ​Deployment/​php-apache ​  ​101%/​50% ​  ​1 ​        ​10 ​       4          7m21s
  
informatique/kebernetes/kube_scale.1702972721.txt.gz · Dernière modification: 2023/12/19 08:58 par benoit