Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Execute um Job com ECI

Última atualização: Sep 17, 2026

Execute workloads em lote em pods ECI que iniciam em segundos e interrompem o faturamento após a conclusão.

Como o faturamento cessa ao término do Job, os workloads em lote evitam custos com nós pré-provisionados e recursos ociosos. Isso torna o ECI ideal para demandas variáveis.

Kubernetes cluster

Pré-requisitos

Verifique os seguintes itens:

Funcionamento do agendamento

Para executar um pod no ECI, aplique o rótulo alibabacloud.com/eci=true ao pod ou ao namespace correspondente. O nó virtual (virtual-kubelet) intercepta o pod e o agenda no ECI em vez de um nó regular do cluster.

Este exemplo usa um rótulo no nível de namespace para agendar todos os pods desse namespace em nós virtuais. Para outros métodos, consulte Schedule pods to virtual nodes.

Procedimento

Etapa 1: Crie um namespace e adicione o rótulo ECI

kubectl create ns vk
kubectl label namespace vk alibabacloud.com/eci=true

Todos os pods no namespace vk são executados como pods ECI em nós virtuais.

Etapa 2: Crie o Job

  1. Salve o seguinte conteúdo YAML como job.yaml. Este Job usa 16 núcleos de CPU e 32 GiB de memória para calcular pi com 2.000 dígitos.

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: pi
      namespace: vk     # Pods in this namespace are scheduled to Elastic Container Instances
    spec:
      template:
        spec:
          containers:
          - name: pi
            image: registry.cn-shanghai.aliyuncs.com/eci_open/perl:5.32
            command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
            resources:
              requests:
                cpu: 16
                memory: 32Gi
          restartPolicy: Never
      backoffLimit: 4
  2. Aplique o arquivo YAML.

    kubectl -n vk apply -f job.yaml

Etapa 3: Verifique a conclusão do Job

Verifique o status do pod.

kubectl -n vk get pod -o wide

O status Completed e o prefixo de nome de nó virtual-kubelet confirmam a execução do pod em um nó virtual.

NAME       READY   STATUS      RESTARTS   AGE   IP              NODE                            NOMINATED NODE   READINESS GATES
pi-zw2lc   0/1     Completed   0          15m   192.168.XX.XX   virtual-kubelet-cn-shanghai-b   <none>           <none>

Etapa 4: Confirme a interrupção do faturamento

Inspecione os eventos do pod.

kubectl -n vk describe pod <pod-name>

Um evento StopCharge na seção Events confirma a finalização do pod ECI e a interrupção do faturamento.

Events:
  Type     Reason            Age   From        Message
  ----     ------            ----  ----        -------
  Warning  ImageCacheMissed  16m   EciService  [eci.imagecache]Missed image cache.
  Normal   Pulling           16m   kubelet     Pulling image "registry.cn--shanghai.aliyuncs.com/eci_open/perl:5.32"
  Normal   Pulled            15m   kubelet     Successfully pulled image "registry.cn-shanghai.aliyuncs.com/eci_open/perl:5.32" in 12.951s (12.951s including waiting). Image size: 336066994 bytes.
  Normal   Created           15m   kubelet     Created container: pi
  Normal   Started           15m   kubelet     Started container pi
  Normal   StopCharge        15m   EciService  [eci.containergroup]The charge of current ECI instance has been stopped, but the related resources are still being cleaned.
Os pods ECI são faturados conforme o uso real de recursos e param de gerar custos após a conclusão. Consulte Billing of elastic container instances e Lifecycle of elastic container instance pods .

Próximas etapas

Para reduzir ainda mais os custos, use pods ECI preemptíveis. Consulte Use preemptible elastic container instances to execute Jobs.