当前位置:网站首页>Échelle élastique personnalisée de l'autoscaler knative

Échelle élastique personnalisée de l'autoscaler knative

2021-09-15 04:50:20 Qingyun Technology Community

Contexte

Aujourd'hui, tous les grands fournisseurs de Cloud commencent à offrir Serverless Kubernetes Services,Simplifier la gestion des grappes,Réduire le fardeau administratif de l'o & M,Jean Kubernetes Plus simple.Alors la question se pose,Quelles sont exactement les capacités dont un système a besoin pour mieux soutenir Serverless Et les applications??

Serverless Les applications nécessitent des fonctions de gestion axées sur l'application,Par exemple,:Mise à jour、Retour en arrière、Publication en niveaux de gris、Fonctions telles que la gestion du débit et l'extensibilité élastique.

Knative C'est basé sur Kubernetes Au - dessus Serverless Appliquer le cadre d'Orchestration.Knative L'une des principales caractéristiques de l'application est l'échelle automatique de la copie de l'application,.Inclure l'échelle de l'application à 0.Par défaut Autoscaler Le composant surveille le flux vers l'application,Et étendre la réplique vers le haut ou vers le bas selon les paramètres configurés.Ce numéro explique principalement Knative Autoscaler Principes et utilisation.

Description:
Pour la pratique Knative Autoscaler Utilisation de,Vous pouvez commencer par ce qui suit.
Kubernetes:Besoin de préparer un Kubernetes Groupe,Et apprendre les ordres pertinents.
Knative Serving:Vous pouvez suivre le Guide de démarrage pour installer Knative .

Autoscaler Principes

Autoscaler Selon les indicateurs surveillés (concurrency、rps、cpuAttendez.), Et agrandir ou réduire la copie en fonction des paramètres configurés , Pour réaliser l'expansion automatique de la capacité .

file

(Source::Kubernetes Autoscaler)

KPA VS HPA

Knative Serving Soutien Knative Pod Autoscaler(KPA)Et Kubernetes De Horizontal Pod Autoscaler(HPA). Ce qui suit est différent scaler Fonctions et limites .

KPA

  • Knative Serving Une partie du noyau , Et est installé Knative Serving Activé par défaut après ;
  • Prise en charge à partir de 0 Fonctions étendues;
  • Non pris en charge sur la base CPU Échelle automatique pour.

HPA

  • Non, pas du tout. Knative Serving Une partie du noyau ,Installation Kubernetes Démarrage par défaut après ;
  • Non pris en charge à partir de 0 Fonctions étendues;
  • Soutien fondé sur CPU Échelle automatique pour.

scaling Configuration

Par l'introduction ci - dessus,On a compris. Autoscaler Principes d'exécution, Ensuite, comment configurer KPA Ou HPA.

scaling Configurer le comportement pour spécifier le grossissement et le rétrécissement , Vous pouvez spécifier une fenêtre stable pour les deux directions , Pour éviter les fluctuations du nombre de répliques dans la cible d'échelle .De même,, Spécifie que la politique d'extension contrôle le taux de variation de la réplique lors de l'extension .

Peut être utilisé annotations Configuration Autoscaler Type de mise en œuvre (KPA Ou HPA);

  • Global settings key:pod-autoscaler-class;
  • Per-revision annotation key:autoscaling.knative.dev/class;
  • Possible values:"kpa.autoscaling.knative.dev" or "hpa.autoscaling.knative.dev";
  • Default:"kpa.autoscaling.knative.dev";

Exemple de configuration:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
    name: helloworld-go
    namespace: default
    spec:
    template:
    metadata:
    annotations:
    autoscaling.knative.dev/class: "kpa.autoscaling.knative.dev"
    spec:
    containers:
    - image: gcr.io/knative-samples/helloworld-go

Description de l'indicateur de configuration

La configuration des mesures définit le type de mesure que l'auto - Scaler surveille , Les paramètres de configuration sont décrits comme suit: :

  • Setting metrics per revision: Pour per-revision Configuration,C'est l'utilisation autoscaling.knative.dev/metric Déterminé par annotation .C'est bon. per-revision Les types de mesures possibles configurés dépendent de ce qui est utilisé Autoscaler Type de mise en œuvre :

    • Par défaut KPA Autoscaler Prise en charge de la concurrence et rps Indicateurs;
    • HPA Autoscaler Soutien cpu Indicateurs.
  • Targets:Configuration Targets Ce sera pour Autoscaler Fournir une valeur , Il va essayer revision L'indicateur de configuration pour maintient cette valeur .
  • Configuring scale to zero: Uniquement utilisé Knative Pod Autoscaler(KPA) L'échelle à zéro ne peut être activée que lorsque , Et ne peut être configuré que globalement .
  • Enable scale to zero:scale to zero Contrôle de la valeur Knative Autoriser la copie à zéro (Si défini à true), Ou si défini à false S'arrête à 1 Copies.
  • Scale to zero grace period: Spécifier une limite de temps maximale , Le système attendra à l'intérieur que la machine à échelle zéro soit en place avant de supprimer la dernière copie .
  • Configuring concurrency: La concurrence détermine le nombre de demandes concurrentes que chaque copie d'une demande peut traiter à un moment donné. .
  • Soft versus hard concurrency limits: Vous pouvez définir des limites de concurrence douces ou dures . Si vous spécifiez à la fois des limites douces et dures , La plus petite des deux valeurs sera utilisée . Cela empêche Autoscaler Valeur cible avec valeur limite dure non autorisée .
  • Target utilization:Désignation Autoscaler Pourcentage de cibles précédemment spécifiées qui devraient effectivement être ciblées . Ceci est également connu sous le nom de chaleur pour spécifier le fonctionnement de la réplique ,Cela conduit à Autoscaler Expand before defined hard Limits are reached .
  • Configuring scale bounds: Configurer les limites supérieure et inférieure pour contrôler le comportement d'échelle automatique . Vous pouvez également spécifier qu'une fois créé revision Échelle initiale à l'échelle .
  • Lower bound: Nombre minimum d'exemplaires par révision .
  • Upper bound: Nombre maximum d'exemplaires par révision .
  • Initial scale:revision Échelle cible initiale qui doit être atteinte immédiatement après la création , Puis marquez - le prêt .
  • Scale Down Delay: Le délai de réduction spécifie une fenêtre de temps , Avant d'appliquer une décision de réduction , La fenêtre de temps doit passer avec une concurrence réduite .

Exemple de configuration

En utilisant la configuration par défaut Knative Serving (KPA).

  1. Créer un demo Services.

     cat <<-EOF | kubectl apply -f -
     apiVersion: serving.knative.dev/v1
     kind: Service
     metadata:
     name: test
     spec:
     template:
     metadata:
     annotations:
     initial-scale: "1"
     allow-zero-initial-scale: "false"
     enable-scale-to-zero: "false"
     spec:
     containers:
     - image: wentevill/demo:latest
     EOF
    
  2. Voir pod Statut, Sans flux pendant un certain temps ,scale À 0.

     kubectl get pods
    
     NAME                                   READY   STATUS    RESTARTS   AGE
     test-00001-deployment-c4546964-mjwqm   2/2     Running   0          15s
    
  3. Voir ksvc Statut.

     kubectl get ksvc
     
     NAME   URL                                           LATESTCREATED          LATESTREADY            READY   REASON
     test   http://test.default.172.31.162.220.sslip.io   test-00001             test-00001             True
    
Description:
Ce qui est utilisé ici est magicDNS, L'utilisation d'autres adresses peut varier , Sous réserve de l'utilisation réelle .
  1. Accès à service .

     curl http://test.default.172.31.162.220.sslip.io
    

    a. pod Existe:Exécuter et retourner les résultats.

    b. pod N'existe pas:autoscaler Expansion de la capacité(Démarrage à froid)À 1, Puis exécutez et retournez les résultats .

Description:
Temps de démarrage à froid de millisecondes à minutes , Les premiers flux peuvent être décalés .

Résumé

C'est tout ce qui précède. Knative Autoscale Le contenu de,Adoption KPA Mise en œuvre de la technologie Severless.

Le prochain numéro vous apportera API Application de la chorégraphie et points douloureux ,Restez à l'écoute..

Liens de référence

[1] Knavtive Serving:https://knative.dev/docs/serving

[2] Horizontal Pod Autoscaler:https://kubernetes.io/docs/ta...

[3] Kubernete Autoscaler:https://v1-17.docs.kubernetes...

Auteur

Tang Lei Qingyun Science and Technology Holographic Platform Department

Cet article est basé sur la plateforme Multi - blog OpenWrite Publication!

版权声明
本文为[Qingyun Technology Community]所创,转载请带上原文链接,感谢
https://chowdera.com/2021/09/20210914174421353O.html

随机推荐