ACK Serverless menjalankan batch job sesuai permintaan—penagihan berhenti ketika siklus hidup Pod berakhir, sehingga Anda tidak perlu memesan node atau memperluas kluster untuk beban kerja yang bersifat burst. Untuk tugas batch yang sensitif terhadap biaya, Anda dapat mengurangi biaya lebih lanjut dengan menggunakan preemptible instance.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Jalankan job
Langkah 1: Buat manifes job
Buat file bernama job.yaml dengan konten berikut:
apiVersion: batch/v1
kind: Job
metadata:
name: pi
spec:
template:
spec:
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
resources:
requests:
cpu: 16
memory: 32Gi
restartPolicy: Never
backoffLimit: 4Contoh ini menghitung nilai pi hingga 2.000 tempat desimal menggunakan 16 CPU dan memori 32 GiB.
Langkah 2: Deploy job
kubectl apply -f job.yamlLangkah 3: Periksa status job
Jalankan perintah berikut untuk memeriksa status Pod:
kubectl get podOutput yang diharapkan:
NAME READY STATUS RESTARTS AGE
pi-4f7w5 0/1 Completed 0 80sJalankan perintah berikut untuk melihat informasi detail mengenai status Pod:
kubectl describe podOutput yang diharapkan:
Name: pi-4f7w5
Namespace: default
Priority: 0
PriorityClassName: <none>
Node: virtual-kubelet-cn-hongkong-b/10.10.66.169
...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal SuccessfulMountVolume 114s kubelet, eci MountVolume.SetUp succeeded for volume "default-token-8k4jz"
Normal Pulling 113s kubelet, eci pulling image "perl"
Normal Pulled 64s kubelet, eci Successfully pulled image "perl"
Normal Created 64s kubelet, eci Created container
Normal Started 64s kubelet, eci Started containerGunakan preemptible instance
Preemptible instance dapat mengurangi biaya komputasi. Untuk menggunakan preemptible instance, tambahkan anotasi k8s.aliyun.com/eci-spot-strategy: SpotAsPriceGo ke templat Pod:
apiVersion: batch/v1
kind: Job
metadata:
name: pi
spec:
template:
metadata:
annotations:
k8s.aliyun.com/eci-spot-strategy: SpotAsPriceGo
spec:
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
resources:
requests:
cpu: 16
memory: 32Gi
restartPolicy: Never
backoffLimit: 4Untuk informasi selengkapnya, lihat Gunakan preemptible instance.
Langkah berikutnya
Pelajari konsep Job Kubernetes untuk mengonfigurasi parallelism, jumlah penyelesaian, dan penanganan kegagalan.