SchedulerX mendukung tugas terjadwal, skrip multi-bahasa, dan antarmuka HTTP, serta penjadwalan native Kubernetes Jobs atau pod. Topik ini menjelaskan cara menerapkan SchedulerX di lingkungan Kubernetes.
Skenario
Menjadwalkan Kubernetes Jobs dengan SchedulerX menawarkan keunggulan berikut.
Edit pod skrip secara online
Kubernetes Jobs sering digunakan untuk pemrosesan data serta operasi dan maintenance (O&M), biasanya dalam bentuk skrip. Pendekatan native mengharuskan Anda memaketkan skrip ke dalam image dan mengonfigurasi perintah skrip dalam file YAML. Untuk memodifikasi skrip, Anda harus membangun ulang dan menerbitkan kembali image tersebut, seperti pada contoh berikut.
Dengan SchedulerX, Anda tidak perlu membangun image atau menulis skrip YAML. Cukup edit skrip (Shell, Python, PHP, atau Node.js) langsung di konsol SchedulerX, lalu skrip tersebut akan otomatis berjalan sebagai pod. Perubahan skrip dapat dilakukan kapan saja melalui konsol dan akan berlaku pada eksekusi terjadwal berikutnya. Pendekatan ini meningkatkan efisiensi pengembangan Kubernetes Jobs dan mengurangi hambatan penggunaan teknologi kontainer karena Anda tidak perlu memahami detail teknis kontainer.
Orkestrasi tugas visual
Di Kubernetes, solusi utama untuk orkestrasi alur kerja adalah Argo, seperti pada contoh berikut.
SchedulerX mendukung orkestrasi tugas Kubernetes melalui antarmuka visual berbasis drag-and-drop, yang lebih praktis dibandingkan solusi berbasis kode. Selain itu, selama eksekusi tugas, graf alur kerja visual membantu Anda mengidentifikasi bottleneck dengan cepat dan meningkatkan efisiensi O&M.
Pemantauan dan peringatan
Saat menggunakan SchedulerX untuk menjadwalkan pod atau Jobs, Anda dapat memanfaatkan fitur pemantauan dan peringatan yang tersedia.
Saluran peringatan yang didukung: pesan teks, panggilan telepon, email, dan Webhook (DingTalk, WeCom, atau Lark).
Kebijakan peringatan yang didukung: peringatan kegagalan dan peringatan timeout eksekusi.
Layanan log
Saat menggunakan SchedulerX untuk menjadwalkan pod atau Jobs, SchedulerX secara otomatis mengumpulkan log pod sehingga Anda tidak perlu mengaktifkan layanan log tambahan. Jika pod gagal berjalan, Anda dapat melakukan troubleshooting langsung di konsol SchedulerX.
Dasbor Pemantauan
Anda dapat memantau tugas secara real-time menggunakan dasbor pemantauan tugas bawaan di SchedulerX.
Penerapan hibrida tugas offline dan online
SchedulerX menyediakan penjadwalan hibrida untuk tugas terjadwal offline dan online, mendukung jenis tugas Java dan Kubernetes. Aplikasi bisnis biasanya mencakup beberapa tugas terjadwal. Jika suatu tugas berjalan dengan frekuensi tinggi, Anda dapat menjalankannya dalam proses yang sama dengan aplikasi bisnis. Namun, pendekatan ini mengonsumsi CPU dan memori aplikasi online serta tidak dapat diisolasi dari logika bisnis utama. Oleh karena itu, untuk tugas yang mengonsumsi sumber daya signifikan dan berjalan dengan frekuensi rendah—misalnya sekali per jam atau sekali per hari—disarankan menjalankannya dalam pod baru agar terisolasi dari aplikasi online asli.
Metode 1: Deploy SchedulerX menggunakan deployment (Direkomendasikan)
Jika Anda menggunakan jenis aplikasi non-Java, Anda dapat menerapkan file schedulerx-agent.yaml menggunakan deployment. SchedulerX akan menjalankan aplikasi dalam pod terpisah. Prosesnya ditunjukkan pada gambar berikut.

Prasyarat
Anda telah membuat kluster Kubernetes, baik berupa kluster Alibaba Cloud Container Service for Kubernetes (ACK) maupun kluster Kubernetes yang dikelola sendiri. Untuk informasi selengkapnya, lihat Buat kluster Kubernetes.
Anda telah mengaktifkan SchedulerX.
Anda telah membuat aplikasi jenis Kubernetes di konsol Platform Penjadwalan Tugas Terdistribusi. Untuk informasi selengkapnya, lihat Buat aplikasi.

Langkah 1: Konfigurasikan ServiceAccount
Tugas Kubernetes SchedulerX bergantung pada ServiceAccount untuk autentikasi dan otorisasi. Secara default, tugas Kubernetes berjalan menggunakan ServiceAccount SchedulerX di namespace tersebut.
Di kluster Kubernetes dan namespace yang sesuai, Anda hanya perlu menjalankan file schedulerx-serviceaccount.yaml satu kali. Untuk mengisolasi namespace dan hanya menjadwalkan pod atau Jobs dalam namespace target, jalankan kode YAML contoh berikut.
Untuk penjadwalan lintas namespace, gunakan ClusterRole dan ClusterRoleBinding.
Langkah 2: Instal schedulerx-agent.yaml
Konfigurasi schedulerx-agent.yaml adalah sebagai berikut.
Variabel image agen SchedulerX
Arsitektur chip | Wilayah | Deskripsi |
X86_64 | Tiongkok daratan | schedulerx-registry.cn-hangzhou.cr.aliyuncs.com/schedulerx2/agent:latest-amd64 |
Wilayah luar Tiongkok daratan | schedulerx-registry.ap-southeast-1.cr.aliyuncs.com/schedulerx2/agent:latest-amd64 | |
ARM64 | Tiongkok daratan | schedulerx-registry.cn-hangzhou.cr.aliyuncs.com/schedulerx2/agent:latest-arm64 |
Wilayah luar Tiongkok daratan | schedulerx-registry.ap-southeast-1.cr.aliyuncs.com/schedulerx2/agent:latest-arm64 |
Variabel env agen SchedulerX
Variabel | Deskripsi |
${SCHEDULERX_ENDPOINT} | Wilayah tempat Anda menerapkan aplikasi dan Endpoint yang sesuai. Misalnya, addr-sh-internal.edas.aliyun.com. Untuk informasi selengkapnya, lihat Daftar Endpoint. |
${SCHEDULERX_NAMESPACE} | ID namespace. Anda dapat memperolehnya di halaman Namespaces di konsol SchedulerX. |
${SCHEDULERX_GROUPID} | ID aplikasi. Anda dapat memperolehnya di halaman Application Management di konsol SchedulerX. |
${SCHEDULERX_APPKEY} | Kunci aplikasi. Anda dapat memperolehnya di halaman Application Management di konsol SchedulerX. |
Setelah deployment selesai, Anda dapat melihat instans di halaman Application Management di konsol SchedulerX untuk memastikan koneksi berhasil.
Metode 2: Deploy SchedulerX menggunakan paket Helm
Prasyarat
Anda telah membuat kluster Kubernetes, baik berupa kluster Alibaba Cloud Container Service for Kubernetes (ACK) maupun kluster Kubernetes yang dikelola sendiri. Untuk informasi selengkapnya, lihat Buat kluster Kubernetes.
Anda telah mengaktifkan SchedulerX.
Anda telah membuat aplikasi jenis Kubernetes di konsol Platform Penjadwalan Tugas Terdistribusi. Untuk informasi selengkapnya, lihat Buat aplikasi.
Anda telah menginstal manajer paket Helm.
Langkah 1: Unduh paket Helm SchedulerX
Jalankan perintah berikut untuk mengunduh paket Helm SchedulerX.
wget https://schedulerx2.oss-cn-hangzhou.aliyuncs.com/helm/schedulerxchart-2.0.0.tgzLangkah 2: Instal paket Helm schedulerx
Dapatkan parameter koneksi aplikasi dari konsol Platform Penjadwalan Tugas Terdistribusi.
Masuk ke Platform Penjadwalan Tugas Terdistribusi.
Di bilah navigasi atas, pilih wilayah.
Di panel navigasi kiri, klik Application Management.
Di halaman Application Management, temukan aplikasi lalu klik Connection Settings di kolom Actions. Di pojok kiri atas halaman Connection Settings, pilih Kubernetes.
Jalankan perintah instalasi berikut.
CatatanGanti parameter koneksi dalam perintah instalasi dengan parameter aplikasi target Anda.
Alamat registri default dalam pengaturan koneksi adalah untuk image amd64 di jaringan publik. Pilih alamat registri yang sesuai berdasarkan wilayah dan arsitektur mesin Anda.
helm install schedulerxchart schedulerxchart-2.0.0.tgz \ --set SCHEDULERX_ENDPOINT=acm.aliyun.com\ ,SCHEDULERX_NAMESPACE=f856c3f8-a15c-4a7e-9b4e-f812a9f8****\ ,SCHEDULERX_GROUPID=k8s-test3\ ,SCHEDULERX_APPKEY=****\ ,SCHEDULERX_AGENT_IMAGE=schedulerx-registry.cn-hangzhou.cr.aliyuncs.com/schedulerx2/agent:latest-amd64Gambar berikut menunjukkan tangkapan layar proses instalasi.

Variabel image agen SchedulerX
Chip architecture
Wilayah
Description
x86_64
Wilayah di Tiongkok
schedulerx-registry.cn-hangzhou.cr.aliyuncs.com/schedulerx2/agent:latest-amd64
Wilayah luar Tiongkok daratan
schedulerx-registry.ap-southeast-1.cr.aliyuncs.com/schedulerx2/agent:latest-amd64
arm64
Wilayah di Tiongkok
schedulerx-registry.cn-hangzhou.cr.aliyuncs.com/schedulerx2/agent:latest-arm64
Wilayah luar Tiongkok daratan
schedulerx-registry.ap-southeast-1.cr.aliyuncs.com/schedulerx2/agent:latest-arm64
Variabel env agen SchedulerX
Variabel
Description
${SCHEDULERX_ENDPOINT}
Wilayah tempat Anda menerapkan aplikasi dan Endpoint yang sesuai. Misalnya, addr-sh-internal.edas.aliyun.com. Untuk informasi selengkapnya, lihat Daftar Endpoint.
${SCHEDULERX_NAMESPACE}
ID namespace. Anda dapat memperolehnya di halaman Namespaces di konsol SchedulerX.

${SCHEDULERX_GROUPID}
ID aplikasi. Anda dapat memperolehnya di halaman Application Management di konsol SchedulerX.
${SCHEDULERX_APPKEY}
Kunci aplikasi. Anda dapat memperolehnya di halaman Application Management di konsol SchedulerX.
SCHEDULERX_AGENT_IMAGE
Alamat registri.
Setelah instalasi selesai, Anda dapat melihat instans di konsol SchedulerX.
Metode 3: Deploy SchedulerX menggunakan SDK Java
Jika aplikasi Anda adalah aplikasi Java dan Anda perlu menjadwalkan program Java selain tugas Kubernetes, Anda dapat menggunakan kit pengembangan perangkat lunak (SDK) Java untuk deployment. SchedulerX berjalan dalam proses yang sama dengan bisnis online Anda. Prosesnya ditunjukkan pada gambar berikut.
Prasyarat
Anda dapat membuat kluster Kubernetes, baik berupa kluster ACK maupun kluster Kubernetes yang dikelola sendiri. Untuk informasi selengkapnya, lihat Buat kluster Kubernetes.
Anda dapat membuat aplikasi K8s di Platform Penjadwalan Tugas Terdistribusi. Untuk informasi selengkapnya, lihat Buat Aplikasi.
Koneksikan ke SchedulerX
Untuk informasi tentang cara menghubungkan menggunakan SDK, lihat Hubungkan aplikasi Spring Boot ke SchedulerX.
Untuk menggunakan tugas Kubernetes, Anda juga memerlukan dependensi schedulerx-plugin-kubernetes, seperti yang ditunjukkan di bawah ini.
Untuk `schedulerx2.version`, gunakan versi client terbaru. Untuk informasi selengkapnya, lihat Catatan rilis.
<dependency>
<groupId>com.aliyun.schedulerx</groupId>
<artifactId>schedulerx2-spring-boot-starter</artifactId>
<version>${schedulerx2.version}</version>
</dependency>
<dependency>
<groupId>com.aliyun.schedulerx</groupId>
<artifactId>schedulerx2-plugin-kubernetes</artifactId>
<version>${schedulerx2-plugin-kubernetes.version}</version>
</dependency>Langkah selanjutnya: Buat tugas Kubernetes
Untuk menjalankan skrip berikut, Anda perlu membuat tugas Kubernetes di halaman Task Management. Untuk informasi selengkapnya, lihat Manajemen tugas.
Skrip Shell
Jika Anda ingin menjalankan skrip Shell di pod, buat tugas Kubernetes di halaman Task Management. Atur Resource Type ke Shell-Script. Anda dapat menggunakan image default busybox atau menggantinya dengan image Anda sendiri.
Klik Run Once. Anda dapat melihat bahwa pod mulai berjalan di kluster Kubernetes. Nama pod-nya adalah schedulerx-shell-{JobId}.
Di halaman Task Management di konsol SchedulerX, Anda dapat mengkueri riwayat eksekusi dan melihat log pod.
Skrip Python
Jika Anda ingin menjalankan skrip Python di pod, buat Kubernetes task di halaman Task Management. Atur Resource Type ke Python-Script. Anda dapat menggunakan image Python default atau menggantinya dengan image Anda sendiri.
Klik Run Once. Anda dapat melihat bahwa pod mulai berjalan di kluster Kubernetes. Nama pod-nya adalah schedulerx-python-{JobId}.
Di halaman Task Management di konsol SchedulerX, Anda dapat mengkueri riwayat eksekusi dan melihat log pod.
Skrip PHP
Jika Anda ingin menjalankan skrip PHP di pod, buat Kubernetes task di halaman Task Management. Atur Resource Type ke PHP-Script. Anda dapat menggunakan image default php:7.4-cli atau menggantinya dengan image Anda sendiri.
Klik Run Once. Anda dapat melihat bahwa pod mulai berjalan di kluster Kubernetes. Nama pod-nya adalah schedulerx-php-{JobId}.
Di halaman Task Management di konsol SchedulerX, Anda dapat mengkueri riwayat eksekusi dan melihat log pod.
Skrip Node.js
Jika Anda ingin menjalankan skrip Node.js di pod, buat Kubernetes task di halaman Task Management. Atur Resource Type ke Nodejs-Script. Anda dapat menggunakan image default node:16 atau menggantinya dengan image Anda sendiri.
Klik Run Once. Anda dapat melihat bahwa pod mulai berjalan di kluster Kubernetes. Nama pod-nya adalah schedulerx-node-{JobId}.
Di halaman Task Management di konsol SchedulerX, Anda dapat mengkueri riwayat eksekusi dan melihat log pod.
Job-YAML
Anda juga dapat menjalankan Kubernetes Jobs native menggunakan SchedulerX. Buat Kubernetes di halaman Task Management, lalu atur Resource Type ke Job-YAML.
Klik Run Once. Anda dapat melihat bahwa Job dan pod telah berhasil dimulai di kluster Kubernetes.
Di halaman Task Management pada konsol SchedulerX, Anda dapat mengkueri riwayat eksekusi dan melihat log pod.
CronJob-YAML
Anda juga dapat menjalankan Kubernetes CronJobs native menggunakan SchedulerX. Buat Kubernetes di halaman Task Management dan atur Resource Type ke CronJob-YAML.

Klik Run Once. Di halaman Task Instance Records, Anda dapat melihat bahwa pod telah berhasil dimulai.

Di halaman Task Management di konsol SchedulerX, Anda dapat mengkueri riwayat eksekusi dan melihat log pod.

Pod-YAML
Anda juga dapat menjalankan pod Kubernetes native menggunakan SchedulerX. Buat Kubernetes di halaman Task Management dan atur Resource Type ke Pod-YAML.
Klik Run Once. Anda dapat melihat bahwa pod telah berhasil dimulai di kluster Kubernetes.
Di halaman Task Management di konsol SchedulerX, Anda dapat mengkueri riwayat eksekusi dan melihat log pod.
Perhatikan hal berikut saat menjalankan pod Kubernetes menggunakan SchedulerX.
Hindari menjalankan pod dengan siklus hidup panjang, seperti aplikasi web yang tidak pernah berhenti setelah dimulai.
Atur kebijakan restart ke Never. Jika tidak, pod akan terus-menerus restart.