informatique:kebernetes:kube_scale
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| informatique:kebernetes:kube_scale [2023/12/19 07:05] – créée benoit | informatique:kebernetes:kube_scale [2023/12/19 08:22] (Version actuelle) – [Création d'une règle d'autoscale pour le déploiement] benoit | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ====== Scaling sous Kubernetes ====== | ====== Scaling sous Kubernetes ====== | ||
| + | ===== Manuel ===== | ||
| + | |||
| + | Pour définir par exemple à 4 le nombre de Pods pour le déploiement nommé **mydeploy01** : | ||
| + | kubectl scale deployment mydeploy01 --replicas=4 | ||
| + | |||
| + | ===== Autoscaling ===== | ||
| + | |||
| + | Le [[informatique: | ||
| + | |||
| + | ==== Création d'un déploiement pour le test ==== | ||
| + | |||
| + | Prenons par exemple le manisfeste de déploiement ci-dessous : | ||
| + | |||
| + | vim hpa-apache-deployment.yml | ||
| + | |||
| + | Contenu : | ||
| + | |||
| + | apiVersion: apps/v1 | ||
| + | kind: Deployment | ||
| + | metadata: | ||
| + | name: php-apache | ||
| + | spec: | ||
| + | selector: | ||
| + | matchLabels: | ||
| + | run: php-apache | ||
| + | template: | ||
| + | metadata: | ||
| + | labels: | ||
| + | run: php-apache | ||
| + | spec: | ||
| + | containers: | ||
| + | - name: php-apache | ||
| + | image: registry.k8s.io/ | ||
| + | ports: | ||
| + | - containerPort: | ||
| + | resources: | ||
| + | limits: | ||
| + | cpu: 500m | ||
| + | requests: | ||
| + | cpu: 200m | ||
| + | --- | ||
| + | apiVersion: v1 | ||
| + | kind: Service | ||
| + | metadata: | ||
| + | name: php-apache | ||
| + | labels: | ||
| + | run: php-apache | ||
| + | spec: | ||
| + | ports: | ||
| + | - port: 80 | ||
| + | selector: | ||
| + | run: php-apache | ||
| + | |||
| + | Appliquer le manifeste : | ||
| + | kubectl apply -f hpa-apache-deployment.yml | ||
| + | |||
| + | Vérification du déploiement : | ||
| + | kubectl get all | ||
| + | |||
| + | Résultat : | ||
| + | NAME READY | ||
| + | pod/ | ||
| + | | ||
| + | NAME | ||
| + | service/ | ||
| + | service/ | ||
| + | | ||
| + | NAME | ||
| + | deployment.apps/ | ||
| + | | ||
| + | NAME DESIRED | ||
| + | replicaset.apps/ | ||
| + | |||
| + | ==== Création d'une règle d' | ||
| + | |||
| + | Nous allons définir ci-dessous une règle d' | ||
| + | kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10 | ||
| + | |||
| + | Explication :!: : Pour le déploiement **php-apache**, | ||
| + | |||
| + | Ci-dessous l' | ||
| + | apiVersion: autoscaling/ | ||
| + | kind: HorizontalPodAutoscaler | ||
| + | metadata: | ||
| + | name: php-apache | ||
| + | spec: | ||
| + | maxReplicas: | ||
| + | metrics: | ||
| + | - resource: | ||
| + | name: cpu | ||
| + | target: | ||
| + | averageUtilization: | ||
| + | type: Utilization | ||
| + | type: Resource | ||
| + | minReplicas: | ||
| + | scaleTargetRef: | ||
| + | apiVersion: apps/v1 | ||
| + | kind: Deployment | ||
| + | name: php-apache | ||
| + | |||
| + | |||
| + | Résultat attendu : | ||
| + | horizontalpodautoscaler.autoscaling/ | ||
| + | |||
| + | Pour lister les règles d' | ||
| + | kubectl get hpa | ||
| + | |||
| + | Résultat attendu : | ||
| + | NAME | ||
| + | php-apache | ||
| + | |||
| + | ==== 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: | ||
| + | |||
| + | Pour voir monitorer : | ||
| + | kubectl get hpa | ||
| + | |||
| + | On peut voir la charge CPU monter et que d' | ||
| + | NAME | ||
| + | php-apache | ||
informatique/kebernetes/kube_scale.1702969533.txt.gz · Dernière modification : de benoit
