Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Schedule pods that are the elastic workloads to ECI by using ack-kubernetes-elastic-workload (discontinued maintenance)

Dernière mise à jour :Aug 11, 2026

Le composant ack-kubernetes-elastic-workload surveille une charge de travail Kubernetes et distribue les réplicas entre la charge de travail source et les unités élastiques selon les politiques de planification. Lorsque le nombre de réplicas dépasse un seuil configuré, les réplicas supplémentaires sont planifiés sur des nœuds virtuels adossés à Elastic Container Instance (ECI).

Important

Vous pouvez toujours utiliser Elastic Workload. Toutefois, son développement est interrompu depuis juin 2024. Nous vous recommandons d'utiliser plutôt UnitedDeployment. Pour comparer les solutions de planification sur nœuds virtuels, consultez la rubrique Planifier un pod sur un nœud virtuel.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

Limitations

  • ack-kubernetes-elastic-workload ne prend pas en charge les charges de travail OpenKruise. Utilisez plutôt le contrôleur UnitedDeployment.

Installer ack-kubernetes-elastic-workload

  1. Connectez-vous à la console Container Service.

  2. Dans le volet de navigation de gauche, choisissez Marketplace > Marketplace.

  3. Sur la page Marketplace, cliquez sur l'onglet App Catalog. Recherchez puis cliquez sur ack-kubernetes-elastic-workload.

  4. Cliquez sur Deploy.

  5. Dans le panneau Deploy, sélectionnez un cluster et un namespace, puis cliquez sur Next.

  6. À l'étape Parameters, configurez les paramètres et cliquez sur OK.

  7. Vérifiez l'installation : accédez à la page des détails du cluster. Dans le volet de navigation de gauche, choisissez Applications > Helm. Confirmez que ack-kubernetes-elastic-workload apparaît dans la liste.

Planifier des réplicas élastiques sur des nœuds virtuels

Cet exemple illustre la planification de la capacité pour une application répondant aux exigences suivantes :

  • Jusqu'à 4 réplicas s'exécutent sur des instances Elastic Compute Service (ECS)

  • 2 réplicas sont conservés pendant les heures creuses

  • Les réplicas au-delà de 4 sont planifiés sur des nœuds virtuels (ECI)

Étape 1 : Créer un Deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment-basic
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
        ports:
        - containerPort: 80
        resources:
          limits:
            cpu: "500m"

Étape 2 : Définir un ElasticWorkload

apiVersion: autoscaling.alibabacloud.com/v1beta1
kind: ElasticWorkload
metadata:
  name: elasticworkload-sample
spec:
  sourceTarget:
    name: nginx-deployment-basic
    kind: Deployment
    apiVersion: apps/v1
    min: 2        # The minimum number of replicas.
    max: 4        # The maximum number of replicas.
  replicas: 6
  elasticUnit:
  - name: virtual-kubelet
    labels:
      alibabacloud.com/eci: "true"

ack-kubernetes-elastic-workload est déployé en tant que module complémentaire externe et n'affecte pas vos activités existantes.

La définition de ressource personnalisée (CRD) ElasticWorkload comprend deux sections clés :

Champ Description
sourceTarget Définit le type de charge de travail source et la plage de réplicas. Les réplicas compris dans la plage min-max sont planifiés sur la charge de travail source.
elasticUnit Tableau de politiques de planification pour les unités élastiques. Pour définir des politiques de planification pour plusieurs unités élastiques, spécifiez les paramètres associés dans l'ordre défini. Lorsque le nombre de réplicas dépasse max, les réplicas supplémentaires sont planifiés sur les unités élastiques selon l'ordre défini.

Dans cet exemple :

  • sourceTarget limite la charge de travail source (nginx-deployment-basic) à 2-4 réplicas sur des instances ECS.

  • Le nombre total de réplicas (6) dépasse la valeur max (4). Les 2 réplicas restants sont planifiés sur l'unité élastique virtual-kubelet avec le libellé alibabacloud.com/eci=true.

Étape 3 : Vérifier le déploiement

Vérifiez l'état de la charge de travail élastique :

kubectl describe ew elasticworkload-sample

La sortie affiche les Desired Replicas pour la charge de travail source et l'unité élastique :

Status:
  Elastic Units Status:
    Desired Replicas:  2
    Name:              nginx-deployment-basic-unit-virtual-kubelet
  Replicas:            6
  Source Target:
    Desired Replicas:  4
    Kind:              Deployment
    Name:              nginx-deployment-basic

Vérifiez la distribution des pods sur les nœuds :

kubectl get pod -o wide

Sortie attendue :

NAME                                                           READY   STATUS    RESTARTS   AGE   IP              NODE
nginx-deployment-basic-5bf87f5f59-22jnw                        1/1     Running   0          16m   10.34.0.131     cn-beijing.172.16.0.1
nginx-deployment-basic-5bf87f5f59-gfp24                        1/1     Running   0          13m   10.34.0.133     cn-beijing.172.16.0.1
nginx-deployment-basic-5bf87f5f59-pw2zx                        1/1     Running   0          13m   10.34.0.134     cn-beijing.172.16.0.1
nginx-deployment-basic-5bf87f5f59-qvh7m                        1/1     Running   0          16m   10.34.0.132     cn-beijing.172.16.0.1
nginx-deployment-basic-unit-virtual-kubelet-65fb6f4cd7-48ssb   1/1     Running   0          13m   172.16.22.157   virtual-kubelet-cn-beijing-e
nginx-deployment-basic-unit-virtual-kubelet-65fb6f4cd7-gjqhm   1/1     Running   0          13m   172.16.22.158   virtual-kubelet-cn-beijing-e

Les 4 premiers pods s'exécutent sur des nœuds ECS. Les 2 pods restants s'exécutent sur des nœuds virtuels (ECI).

Utiliser HPA avec des charges de travail élastiques

Horizontal Pod Autoscaler (HPA) peut cibler directement les ressources ElasticWorkload. Lors de la réduction de l'échelle, les réplicas des unités élastiques sont réduits en premier.

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: elastic-workload-demo
  namespace: default
spec:
  scaleTargetRef:
    apiVersion: autoscaling.alibabacloud.com/v1beta1
    kind: ElasticWorkload
    name: elasticworkload-sample
  minReplicas: 2
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 50

Lorsque HPA réduit le nombre de réplicas (par exemple, de 6 à 4), la charge de travail élastique supprime d'abord les réplicas des unités élastiques, tout en maintenant stables les réplicas de la charge de travail source.