Effectuer le scaling des charges de travail sans état

Ce document explique comment effectuer le scaling de charges de travail sans état existantes exécutées dans un cluster Kubernetes Google Distributed Cloud (GDC) sous air gap. Vous devez effectuer le scaling des pods exécutés dans vos charges de travail sans état à mesure que les exigences de vos charges de travail de conteneurs évoluent.

Ce document s'adresse aux développeurs du groupe d'opérateurs d'applications chargés de gérer les charges de travail d'applications pour leur organisation. Pour en savoir plus, consultez Audiences pour la documentation GDC sous air gap.

Avant de commencer

Pour effectuer les tâches décrites dans ce document, vous devez demander les autorisations nécessaires et préparer votre environnement.

Demander des rôles IAM

Vous devez disposer de rôles spécifiques pour obtenir les autorisations nécessaires pour effectuer le scaling des charges de travail sans état. Les rôles dont vous avez besoin dépendent du fait que vous travaillez dans un cluster partagé au niveau de l'organisation ou dans un cluster standard au niveau du projet. Pour en savoir plus, consultez Configurations de cluster Kubernetes.

Rôles de cluster partagé

Pour créer, supprimer, modifier ou afficher des charges de travail dans un cluster partagé, demandez à votre administrateur IAM de projet de vous accorder le rôle Administrateur d'espace de noms (namespace-admin). Ce rôle est lié à l'espace de noms de votre projet.

Rôles de cluster standard

Pour créer, supprimer, modifier ou afficher des charges de travail dans un cluster standard, demandez à votre administrateur IAM de projet de vous accorder le rôle Développeur de cluster (cluster-developer). Ce rôle est lié à l'espace de noms de votre projet.

Préparer votre environnement

Pour exécuter des commandes sur un cluster Kubernetes à l'aide de l'API, assurez-vous de disposer des ressources suivantes :

  • Recherchez le nom du cluster Kubernetes ou demandez-le à un membre du groupe d'administrateurs de plate-forme.

  • Connectez-vous et générez le fichier kubeconfig pour le cluster Kubernetes.

  • Utilisez le chemin d'accès kubeconfig du cluster Kubernetes pour remplacer KUBERNETES_CLUSTER_KUBECONFIG dans ces instructions.

Effectuer le scaling d'un déploiement

Utilisez la fonctionnalité de scaling de Kubernetes pour effectuer le scaling approprié du nombre de pods exécutés dans votre déploiement.

Effectuer l'autoscaling des pods d'un déploiement

Kubernetes propose l'autoscaling pour éviter d'avoir à mettre à jour manuellement votre déploiement lorsque la demande évolue. Procédez comme suit pour effectuer l'autoscaling des pods de votre déploiement :

  1. Pour vous assurer que l'autoscaler horizontal de pods peut mesurer correctement le pourcentage d'utilisation du processeur, définissez la requête de ressources de processeur sur votre déploiement.

  2. Définissez l'autoscaler horizontal de pods dans votre déploiement :

    kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
        -n NAMESPACE \
        autoscale deployment DEPLOYMENT_NAME \
        --cpu-percent=CPU_PERCENT \
        --min=MIN_NUMBER_REPLICAS \
        --max=MAX_NUMBER_REPLICAS
    

    Remplacez les éléments suivants :

    • KUBERNETES_CLUSTER_KUBECONFIG: fichier kubeconfig du cluster.

    • NAMESPACE : espace de noms. Pour les clusters partagés, il doit s'agir d'un espace de noms de projet. Pour les clusters standards, il peut s'agir de n'importe quel espace de noms.

    • DEPLOYMENT_NAME: nom du déploiement à autoscaler.

    • CPU_PERCENT: utilisation moyenne cible du processeur à demander, représentée sous forme de pourcentage, pour l'ensemble des pods.

    • MIN_NUMBER_REPLICAS: limite inférieure du nombre de pods que l'autoscaler peut provisionner.

    • MAX_NUMBER_REPLICAS: limite supérieure du nombre de pods que l'autoscaler peut provisionner.

  3. Vérifiez l'état actuel de l'autoscaler horizontal de pods :

    kubectl get hpa
    

    Le résultat ressemble à ce qui suit :

    NAME              REFERENCE                          TARGET    MINPODS   MAXPODS   REPLICAS   AGE
    DEPLOYMENT_NAME   Deployment/DEPLOYMENT_NAME/scale   0% / 50%  1         10        1          18s
    

Effectuer manuellement le scaling des pods d'un déploiement

Si vous préférez effectuer manuellement le scaling d'un déploiement, exécutez la commande suivante :

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
    -n NAMESPACE \
    scale deployment DEPLOYMENT_NAME \
    --replicas NUMBER_OF_REPLICAS

Remplacez les éléments suivants :

  • KUBERNETES_CLUSTER_KUBECONFIG: fichier kubeconfig du cluster.

  • NAMESPACE : espace de noms. Pour les clusters partagés, il doit s'agir d'un espace de noms de projet. Pour les clusters standards, il peut s'agir de n'importe quel espace de noms.

  • DEPLOYMENT_NAME: nom du déploiement dans lequel effectuer l'autoscaling.

  • DEPLOYMENT_NAME: nombre d'objets Pod répliqués dans le déploiement.

Étape suivante