SchedulerX memungkinkan Anda menjadwalkan program secara periodik, menjalankan skrip dalam berbagai bahasa pemrograman, serta memanggil operasi HTTP. SchedulerX juga mendukung penjadwalan job dan pod native Kubernetes. Topik ini menjelaskan cara melakukan deploy SchedulerX di kluster Kubernetes.
Skenario penggunaan
Saat menggunakan SchedulerX untuk menjadwalkan job Kubernetes, Anda memperoleh manfaat berikut:
Edit skrip online dalam mode pod
Dalam kebanyakan kasus, job Kubernetes dijalankan untuk pemrosesan data dan operasi O&M berbasis skrip. Tanpa SchedulerX, Anda harus memaketkan skrip ke dalam gambar kontainer dan mengonfigurasi perintah skrip dalam file YAML. Untuk memodifikasi skrip, Anda perlu membuat gambar baru dan menerbitkannya ulang. Contoh kode berikut mengilustrasikan hal tersebut:
Dengan SchedulerX, Anda tidak perlu membuat gambar baru atau mengonfigurasi perintah skrip dalam file YAML. Cukup edit skrip langsung di konsol SchedulerX. Bahasa pemrograman yang didukung mencakup Shell, Python, PHP, dan Node.js. SchedulerX kemudian secara otomatis menjalankan skrip tersebut dalam mode pod. Perubahan skrip langsung berlaku pada penjadwalan job Kubernetes berikutnya, sehingga meningkatkan efisiensi pengembangan. Selain itu, karena operasi terhadap kontainer menjadi transparan, pengguna yang tidak terbiasa dengan konsep dasar kontainer dapat dengan mudah menjadwalkan job Kubernetes.
Orkestrasi job yang divisualisasikan
Argo Workflows merupakan solusi utama untuk mengorkestrasikan alur kerja job di Kubernetes. Contoh kode:
SchedulerX menyediakan antarmuka grafis (GUI) yang memungkinkan Anda mengorkestrasikan job Kubernetes melalui operasi seret-dan-lepas. Dibandingkan dengan Argo Workflows—solusi orkestrasi berbasis kode—SchedulerX menawarkan kenyamanan yang lebih tinggi. Saat job berjalan, SchedulerX menampilkan grafik asiklik terarah (DAG) yang memvisualisasikan alur kerja job, membantu Anda mendiagnosis masalah job yang terblokir dan meningkatkan efisiensi operasi O&M.
Pemantauan Peringatan
Jika Anda menggunakan SchedulerX untuk menjadwalkan pod atau job, fitur pemantauan dan peringatan SchedulerX tersedia.
Metode peringatan: SchedulerX mengirim notifikasi peringatan melalui pesan teks, panggilan telepon, email, serta URL Webhook dari chatbot DingTalk, bot WeCom, dan bot Lark.
Kebijakan peringatan: SchedulerX memicu peringatan ketika job gagal dieksekusi atau eksekusi melebihi batas waktu.
Pengumpulan log
Jika Anda menggunakan SchedulerX untuk menjadwalkan pod atau job, SchedulerX secara otomatis mengumpulkan log operasional pod atau job tersebut. Jika pod gagal berjalan, Anda dapat mendiagnosis masalah berdasarkan log di konsol SchedulerX.
Di halaman Log Service, panel kiri menampilkan daftar instans tugas yang dapat difilter berdasarkan status, ID aplikasi, dan kriteria lainnya. Jenis tugas adalah Job-YAML, dengan status termasuk Success dan Failure. Panel kanan merupakan penampil log yang mendukung pencarian berdasarkan bidang dan rentang waktu. Entri log penting untuk tugas yang gagal mencakup:
job processor exec fail.nullExitCode: 255 Reason: ErrorArgument to accuracy must be greater than zero at /usr/local/lib/perl5/5.34.0/bignum.pm line 215
Dasbor pemantauan
Di halaman Ikhtisar konsol SchedulerX, Anda dapat melihat job Anda secara real time.
Deployment campuran job online dan offline
SchedulerX memungkinkan deployment dan penjadwalan job periodik online dan offline jenis Java dan Kubernetes secara campuran. Aplikasi bisnis mungkin melibatkan beberapa job periodik. Jika Anda sering menjadwalkan job periodik, Anda mungkin men-deploy-nya dalam proses yang sama dengan aplikasi bisnis Anda. Dalam kasus ini, sumber daya CPU dan memori aplikasi akan dikonsumsi, sehingga job periodik tersebut tidak terisolasi dari bisnis online Anda. Namun, jika suatu job periodik mengonsumsi banyak sumber daya dan dijadwalkan dengan frekuensi rendah—misalnya sekali per jam atau sekali per hari—Anda dapat membuat pod khusus untuk menjalankannya. Pendekatan ini memungkinkan job berjalan dalam proses yang terpisah dari bisnis online Anda.
Metode 1 (direkomendasikan): Deploy SchedulerX menggunakan Deployment
Untuk aplikasi non-Java, Anda dapat melakukan deploy file schedulerx-agent.yaml menggunakan Deployment. Dengan cara ini, SchedulerX dideploy sebagai pod terpisah. Gambar berikut menunjukkan cara kerja SchedulerX dalam skenario ini.

Prasyarat
Kluster ACK atau kluster Kubernetes yang dikelola sendiri telah dibuat. Untuk informasi selengkapnya, lihat Buat kluster ACK yang dikelola.
SchedulerX telah diaktifkan.
Aplikasi Kubernetes telah dibuat di konsol SchedulerX. Untuk informasi selengkapnya, lihat Buat aplikasi.
Saat membuat aplikasi, pilih Professional Edition untuk versi dan aktifkan Log Service. Di konfigurasi Instance Busy, atur load5 ke 0, penggunaan memori ke 90%, penggunaan disk ke 95%, dan aktifkan sakelar Trigger Busy Machine.
Langkah 1: Konfigurasikan akun layanan
Akun layanan menyediakan identitas untuk validasi dan otorisasi saat job Kubernetes dijadwalkan menggunakan SchedulerX. Secara default, akun layanan namespace tempat job Kubernetes berada digunakan.
Anda hanya perlu menjalankan file schedulerx-serviceaccount.yaml satu kali di namespace yang diperlukan dalam kluster Kubernetes. Jika Anda hanya ingin menjadwalkan pod atau job yang berada dalam namespace saat ini, jalankan kode YAML berikut:
Jika Anda ingin menjadwalkan job lintas namespace, Anda harus memanggil operasi API ClusterRole dan ClusterRoleBinding.
Langkah 2: Instal agen SchedulerX
Kode contoh berikut menunjukkan konfigurasi file schedulerx-agent.yaml:
Tabel berikut menjelaskan nilai yang valid untuk image.
Arsitektur chip | Wilayah dan zona | Deskripsi |
X86_64 | Wilayah dan zona di Tiongkok | schedulerx-registry.cn-hangzhou.cr.aliyuncs.com/schedulerx2/agent:latest-amd64 |
Wilayah dan zona di luar Tiongkok | schedulerx-registry.ap-southeast-1.cr.aliyuncs.com/schedulerx2/agent:latest-amd64 | |
ARM64 | Wilayah dan zona di Tiongkok | schedulerx-registry.cn-hangzhou.cr.aliyuncs.com/schedulerx2/agent:latest-arm64 |
Wilayah dan zona di luar Tiongkok | schedulerx-registry.ap-southeast-1.cr.aliyuncs.com/schedulerx2/agent:latest-arm64 |
Tabel berikut menjelaskan variabel yang terdapat dalam env.
Variabel | Deskripsi |
${SCHEDULERX_ENDPOINT} | ENDPOINT menentukan titik akhir yang sesuai dengan wilayah tempat aplikasi Anda dideploy. Contoh: addr-sh-internal.edas.aliyun.com. Untuk informasi selengkapnya, lihat Endpoints. |
${SCHEDULERX_NAMESPACE} | ID namespace. Anda dapat menemukannya di halaman Namespace di konsol SchedulerX. Di panel navigasi sebelah kiri konsol Platform Penjadwalan Job Terdistribusi, klik Namespace. Di daftar namespace, temukan kolom Namespace ID untuk mendapatkan nilai ID namespace target, yang digunakan untuk menggantikan |
${SCHEDULERX_GROUPID} | ID aplikasi. Anda dapat menemukannya di halaman Application Management di konsol SchedulerX. Masuk ke konsol SchedulerX. Di halaman Application Management, lihat Application ID aplikasi target di daftar aplikasi — inilah nilai parameter tersebut. |
${SCHEDULERX_APPKEY} | Kunci aplikasi. Anda dapat menemukannya di halaman Application Management di konsol SchedulerX. Nilai ini dapat ditemukan di halaman Application Management konsol SchedulerX, di kolom Application Key pada daftar aplikasi. |
Setelah Deployment selesai, verifikasi koneksi dengan mencari instans baru di halaman Application Management di konsol SchedulerX.
Metode 2: Deploy SchedulerX menggunakan paket Helm
Prasyarat
Kluster ACK atau kluster Kubernetes yang dikelola sendiri telah dibuat. Untuk informasi selengkapnya, lihat Buat kluster ACK yang dikelola.
SchedulerX telah diaktifkan.
Aplikasi Kubernetes telah dibuat di konsol SchedulerX. Untuk informasi selengkapnya, lihat Buat aplikasi.
Tool manajemen paket Helm telah diinstal.
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 akses aplikasi di konsol SchedulerX.
Masuk ke konsol SchedulerX.
Di bilah navigasi atas, pilih wilayah.
Di panel navigasi sebelah kiri, klik Application Management.
Di halaman Application Management, temukan aplikasi Anda dan klik Access Configuration di kolom Actions. Di panel Access Configuration, pilih K8s.
Jalankan perintah instalasi berikut:
CatatanGanti parameter akses dalam perintah dengan parameter akses aplikasi yang ingin Anda jadwalkan.
Secara default, alamat gambar dalam konfigurasi akses adalah alamat gambar arsitektur AMD di Internet. Tentukan alamat gambar berdasarkan wilayah tempat mesin Anda berada 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-amd64[root@tangtao-cenos-dev-2 ~]# helm install schedulerxchart schedulerxchart-2.0.0.tgz \ > --set SCHEDULERX_ENDPOINT=acm.aliyxxx \ > ,SCHEDULERX_NAMESPACE=f856c3f8-a15c-4a7e-9b4e-fxxx \ > ,SCHEDULERX_GROUPID=k8sxxx \ > ,SCHEDULERX_APPKEY=VRW7waCaeZlxxx \ > ,SCHEDULERX_AGENT_IMAGE=registry.cn-hangzhou.aliyuncs.com/schxxx NAME: schedulerxchart LAST DEPLOYED: Fri Oct 21 14:21:25 2022 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None [root@tangtao-cenos-dev-2 ~]# helm list NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION schedulerxchart default 1 2022-10-21 14:21:25.978497197 +0800 CST deployed schedulerxchart-2.0.0 1.8.0 [root@tangtao-cenos-dev-2 ~]# kubectl get pod NAME READY STATUS RESTARTS AGE schedulerx-agent-d8cf5bd55-f4nkt 1/1 Running 0 13sTabel berikut menjelaskan nilai yang valid untuk image.
Arsitektur chip
Wilayah dan zona
Deskripsi
x86_64
Wilayah dan zona di Tiongkok
schedulerx-registry.cn-hangzhou.cr.aliyuncs.com/schedulerx2/agent:latest-amd64
Wilayah dan zona di luar Tiongkok
schedulerx-registry.ap-southeast-1.cr.aliyuncs.com/schedulerx2/agent:latest-amd64
arm64
Wilayah dan zona di Tiongkok
schedulerx-registry.cn-hangzhou.cr.aliyuncs.com/schedulerx2/agent:latest-arm64
Wilayah dan zona di luar Tiongkok
schedulerx-registry.ap-southeast-1.cr.aliyuncs.com/schedulerx2/agent:latest-arm64
Tabel berikut menjelaskan variabel yang terdapat dalam env.
Variabel
Deskripsi
${SCHEDULERX_ENDPOINT}
ENDPOINT menentukan titik akhir yang sesuai dengan wilayah tempat aplikasi Anda dideploy. Contoh: addr-sh-internal.edas.aliyun.com. Untuk informasi selengkapnya, lihat Endpoints.
${SCHEDULERX_NAMESPACE}
ID namespace. Anda dapat menemukannya di halaman Namespace di konsol SchedulerX. Di panel navigasi sebelah kiri konsol Platform Penjadwalan Job Terdistribusi, klik Namespace. Di daftar namespace, temukan kolom Namespace ID untuk mendapatkan nilai ID namespace target, yang digunakan untuk menggantikan
${SCHEDULERX_NAMESPACE}dalam konfigurasi.${SCHEDULERX_GROUPID}
ID aplikasi. Anda dapat menemukannya di halaman Application Management di konsol SchedulerX. Masuk ke konsol SchedulerX. Di halaman Application Management, lihat Application ID aplikasi target di daftar aplikasi — inilah nilai parameter tersebut.
${SCHEDULERX_APPKEY}
Kunci aplikasi. Anda dapat menemukannya di halaman Application Management di konsol SchedulerX. Nilai ini dapat ditemukan di halaman Application Management konsol SchedulerX, di kolom Application Key pada daftar aplikasi.
SCHEDULERX_AGENT_IMAGE
URL gambar.
Setelah instalasi selesai, verifikasi deployment dengan melihat instans di konsol SchedulerX.
Metode 3: Deploy SchedulerX menggunakan SchedulerX SDK untuk Java
Untuk aplikasi Java, Anda mungkin ingin menjadwalkan job Kubernetes dan program Java sekaligus. Dalam kasus ini, Anda dapat melakukan deploy SchedulerX menggunakan SchedulerX SDK untuk Java. SchedulerX dan bisnis online Anda berbagi proses yang sama. Gambar berikut menunjukkan alur kerjanya.
Prasyarat
Kluster ACK atau kluster Kubernetes yang dikelola sendiri telah dibuat. Untuk informasi selengkapnya, lihat Buat kluster ACK yang dikelola.
Anda telah membuat aplikasi jenis K8s di konsol SchedulerX. Untuk informasi selengkapnya, lihat Buat aplikasi.
Hubungkan aplikasi Anda ke SchedulerX
Gunakan SchedulerX SDK untuk Java guna menghubungkan aplikasi Anda ke SchedulerX. Untuk informasi selengkapnya, lihat Hubungkan aplikasi Spring Boot ke SchedulerX.
Tambahkan dependensi schedulerx-plugin-kubernetes untuk mengaktifkan penjadwalan job Kubernetes. Contoh kode:
Ganti schedulerx2.version dengan versi terbaru agen SchedulerX. 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>Buat job Kubernetes
Sebelum menjalankan skrip berikut, buat job Kubernetes di panel Buat Tugas pada halaman Manajemen Tugas. Untuk informasi selengkapnya, lihat Kelola tugas.
Jalankan skrip Shell
Jika Anda ingin menjalankan skrip Shell dalam pod, buat tugas Kubernetes di halaman Task management. Atur resource type ke Shell-Script dan gunakan gambar default busybox, atau ganti dengan gambar kustom Anda sendiri.
Di langkah Basic Configuration pada halaman Create Task, konfigurasikan parameter berikut:
Task name: Masukkan
Shell-ScriptApplication ID: Pilih aplikasi target
Task type: Pilih k8s
Resource type: Pilih Shell-Script
Konten skrip: Masukkan
echo 'Hello, World!'Template type: Pilih Standard template
Image: Masukkan
busyboxmountPath: Masukkan
script/shellimagePullPolicy: Pilih IfNotPresent
File format: Pilih unix
Execution mode: Pilih Single-machine execution
Priority: Pilih Medium
Setelah konfigurasi selesai, klik Next, lengkapi pengaturan penjadwalan dan notifikasi, lalu kirim tugas tersebut.
Klik Run Once. Pod bernama schedulerx-shell-{JobId} akan dimulai di kluster Kubernetes Anda.
[root@schedulerx-agent-xxx /]
# kubectl get pod | grep schedulerx
schedulerx-agent-69d448d974-xzjw6 1/1 Running 0 18h
schedulerx-shell-1461 0/1 Completed 0 2m37s
[root@schedulerx-agent-xxx /]
# kubectl logs schedulerx-shell-1461
Hello, World!
hello schedulerx!
[root@schedulerx-agent-xxx /]
#Di konsol SchedulerX, Anda dapat melihat catatan eksekusi historis dan log operasional pod di halaman Task management. Setelah tugas berhasil dijalankan, tugas Shell-Script menunjukkan status Success di halaman Task Instance Records. Klik instans yang sesuai untuk melihat panel Log. Output log mencakup hello schedulerx!, Hello, World!, dan pod status change to Succeeded, yang menunjukkan bahwa pod telah berhasil mengeksekusi skrip dan keluar.
Jalankan skrip Python
Jika Anda ingin menjalankan skrip Python dalam pod, buat tugas Kubernetes di halaman Task management. Atur resource type ke Python-Script dan gunakan gambar default python, atau ganti dengan gambar kustom Anda sendiri.
Di langkah Basic Configuration pada halaman Create Task, konfigurasikan parameter berikut:
Task name: Masukkan
Python-ScriptApplication ID: Pilih aplikasi target
Task type: Pilih k8s
Resource type: Pilih Python-Script
Di editor kode, masukkan skrip Python, misalnya
import sysdanprint('Hello, World!')Template type: Pilih Standard template
Image: Masukkan
pythonmountPath: Masukkan
script/pythonimagePullPolicy: Pilih IfNotPresent
File format: Pilih unix
Execution mode: Pilih Single-machine execution
Priority: Pilih Medium
Setelah konfigurasi selesai, klik Next, lengkapi pengaturan penjadwalan dan notifikasi, lalu simpan tugas tersebut.
Klik Run Once. Pod bernama schedulerx-python-{JobId} akan dimulai di kluster Kubernetes Anda.
[root@schedulerx-agent-xxx /]
# kubectl get pod | grep schedulerx
schedulerx-agent-69d448d974-xzjw6 1/1 Running 0 18h
schedulerx-python-1463 0/1 Completed 0 5m37s
schedulerx-shell-1461 0/1 Completed 0 15m
[root@schedulerx-agent-xxx /]
# kubectl logs schedulerx-python-1463
Hello, World!
[root@schedulerx-agent-xxx /]
#Di konsol SchedulerX, Anda dapat melihat catatan eksekusi historis dan log operasional pod di halaman Task management. Di halaman Task Instance Records, Anda dapat melihat status eksekusi tugas (sukses atau gagal). Klik catatan yang sesuai untuk membuka panel log. Output log mencakup Hello, World! dan pod status change to Succeeded, yang menunjukkan bahwa skrip Python telah berhasil dieksekusi dalam pod.
Jalankan skrip PHP
Jika Anda ingin menjalankan skrip PHP dalam pod, buat tugas Kubernetes di halaman Task management. Atur resource type ke PHP-Script dan gunakan gambar default php:7.4-cli, atau ganti dengan gambar kustom Anda sendiri.
Di langkah Basic Configuration pada halaman Create Task, konfigurasikan parameter berikut:
Task name: Masukkan
PHP-ScriptApplication ID: Pilih aplikasi target
Task type: Pilih k8s
Resource type: Pilih Php-Script
Di editor kode, masukkan kode PHP, misalnya
<?php echo 'Hello, World!'; ?>Template type: Pilih Standard template
Image: Masukkan
php:7.4-climountPath: Masukkan
script/phpimagePullPolicy: Pilih IfNotPresent
File format: Pilih unix
Execution mode: Pilih Single-machine execution
Priority: Pilih Medium
Setelah konfigurasi selesai, klik Next.
Klik Run Once. Pod bernama schedulerx-php-{JobId} akan dimulai di kluster Kubernetes Anda.
[root@schedulerx-agent-xxx xxx]
# kubectl get pod | grep schedulerx
schedulerx-agent-xxx xxx 1/1 Running 0 19h
schedulerx-php-1464 0/1 Completed 0 54s
schedulerx-python-1463 0/1 Completed 0 28m
schedulerx-shell-1461 0/1 Completed 0 38m
[root@schedulerx-agent-xxx xxx]
# kubectl logs schedulerx-xxx
Hello, World!
[root@schedulerx-agent-xxx xxx]
#Di konsol SchedulerX, Anda dapat melihat catatan eksekusi historis dan log operasional pod di halaman Task management. Setelah tugas berhasil dijalankan, di halaman Task Instance Records, Anda dapat melihat status tugas sebagai Success. Klik catatan tugas untuk membuka panel Log. Output log mencakup Hello, World!, dan status pod berubah menjadi Succeeded.
Jalankan skrip Node.js
Jika Anda ingin menjalankan skrip Node.js dalam pod, buat tugas Kubernetes di halaman Task management. Atur resource type ke Nodejs-Script dan gunakan gambar default node:16, atau ganti dengan gambar kustom Anda sendiri.
Buat tugas di konsol SchedulerX. Di langkah Basic Configuration, konfigurasikan parameter berikut:
Task name:
Nodejs-ScriptApplication ID: Pilih aplikasi target
Task type: k8s
Resource type: Nodejs-Script
Di editor kode, masukkan
console.log("Hello, World!");Template type: Standard template
Image:
node:16mountPath:
script/nodeimagePullPolicy: IfNotPresent
File format: unix
Execution mode: Single-machine execution
Priority: Medium
Setelah konfigurasi selesai, klik Next.
Klik Run Once. Pod bernama schedulerx-node-{JobId} akan dimulai di kluster Kubernetes Anda.
[root@schedulerx-agent-xxx Z]# kubectl get pod | grep schedulerx
schedulerx-agent-6xxx 1/1 Running 0 19h
schedulerx-node-xxx 0/1 Completed 0 23s
schedulerx-php-xxx 0/1 Completed 0 4m57s
schedulerx-python-xxx 0/1 Completed 0 32m
schedulerx-shell-xxx 0/1 Completed 0 42m
[root@schedulerx-agent-6xxx Z]# kubectl logs schedulerx-node-xxx
Hello, World!Di konsol SchedulerX, Anda dapat melihat catatan eksekusi historis dan log operasional pod di halaman Task management. Setelah tugas dijalankan, di halaman Task Instance Records, status eksekusi tugas ditampilkan sebagai Success. Panel Log menampilkan Hello, World! dan menunjukkan pod status change to Succeeded.
Job-YAML
Anda juga dapat menggunakan SchedulerX untuk menjalankan Job Kubernetes native. Buat tugas Kubernetes di halaman Task management dan atur resource type ke Job-YAML.
Di langkah Basic Configuration pada halaman Create Task, konfigurasikan parameter berikut:
Task name:
Job-YAMLApplication ID: Pilih aplikasi yang telah dibuat
Task type: k8s
Resource type: Job-YAML
Execution mode: Single-machine execution
Priority: Medium
Di editor kode, masukkan YAML Job Kubernetes berikut:
apiVersion: batch/v1
kind: Job
metadata:
name: pi
spec:
template:
spec:
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(100)"]
restartPolicy: Never
backoffLimit: 4Klik Next untuk melanjutkan ke konfigurasi penjadwalan.
Klik Run Once. Anda dapat melihat bahwa Job dan pod-nya yang sesuai telah dimulai di kluster Kubernetes Anda.
[root@schedulerx-agent-xxx /]
# kubectl get job
NAME COMPLETIONS DURATION AGE
pi 1/1 17s 6m5s
[root@schedulerx-agent-xxx /]
# kubectl get pod
NAME READY STATUS RESTARTS AGE
hello 0/1 Completed 0 19h
pi--1-jgck5 0/1 Completed 0 6m8s
schedulerx-agent-xxx 1/1 Running 0 19h
schedulerx-node-1xxx 0/1 Completed 0 14m
schedulerx-php-14xxx 0/1 Completed 0 19m
schedulerx-python 0/1 Completed 0 46m
schedulerx-shell-xxx 0/1 Completed 0 56m
[root@schedulerx-agent-xxx /]
# kubectl logs pi--1-jgck5
3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706
[root@schedulerx-agent-xxx /]
#Di konsol SchedulerX, Anda dapat melihat catatan eksekusi historis dan log operasional pod di halaman Task management. Di halaman Task Instance Records, Anda dapat melihat status eksekusi tugas Job-YAML (sukses atau gagal). Klik instans tugas untuk membuka panel Log, tempat log menunjukkan bahwa taskMaster berhasil diinisialisasi dan output komputasi tugas ditampilkan.
CronJob-YAML
Anda juga dapat menggunakan SchedulerX untuk menjalankan CronJob Kubernetes native. Buat tugas Kubernetes di halaman Task management dan atur resource type ke CronJob-YAML.
Di halaman Basic Configuration, atur Task name ke CronJob-YAML dan Task type ke k8s. Di editor YAML, masukkan definisi CronJob. Dalam contoh ini, konfigurasikan metadata.name: hello, schedule: "0/1 * * * *", gambar kontainer busybox:1.28, imagePullPolicy: IfNotPresent, dan perintah eksekusi /bin/sh. Atur Execution mode ke Single-machine execution lalu klik Next.
Klik Run Once. Anda dapat melihat bahwa pod telah dimulai di halaman Task instance records.
Di konsol SchedulerX, Anda dapat melihat catatan eksekusi historis dan log operasional pod di halaman Task management.
Log menunjukkan bahwa pod menghasilkan output Hello from the Kubernetes cluster dan statusnya dicatat sebagai berubah menjadi Succeeded.
Pod-YAML
Anda juga dapat menggunakan SchedulerX untuk menjalankan pod Kubernetes native. Buat tugas Kubernetes di halaman Task management dan atur resource type ke Pod-YAML.
Di langkah Basic Configuration pada halaman Create Task, konfigurasikan parameter berikut:
Task name:
Pod-YAMLApplication ID: Pilih aplikasi target
Task type: k8s
Resource type: Pod-YAML
Di editor kode, masukkan definisi YAML Pod Kubernetes, misalnya pod yang menggunakan gambar busybox dan menjalankan echo "hello world". Atur Execution mode ke Single-machine execution, Priority ke Medium, lalu klik Next.
Klik Run Once. Anda dapat melihat bahwa pod telah dimulai di kluster Kubernetes Anda.
[root@schedulerx-agent-xxx /]
# kubectl get pod
NAME READY STATUS RESTARTS AGE
hello 0/1 Completed 0 2m39s
pi--1-jgck5 0/1 Completed 0 49m
schedulerx-agent-xxx 1/1 Running 0 20h
schedulerx-node-xxx 0/1 Completed 0 58m
schedulerx-php-1xxx 0/1 Completed 0 62m
schedulerx-pythoxxx 0/1 Completed 0 90m
schedulerx-shell 0/1 Completed 0 100m
[root@schedulerx-xxx /]
# kubectl logs hello
hello world
[root@schedulerx-agent-xxx /]
#Di konsol SchedulerX, Anda dapat melihat catatan eksekusi historis dan log operasional pod di halaman Task management. Di halaman Task Instance Records, Anda dapat melihat status eksekusi tugas jenis Pod-YAML (sukses atau gagal). Klik tugas yang sesuai untuk melihat Log, yang mencakup hello world dan standalone taskMaster init success., yang menunjukkan bahwa tugas berhasil dijalankan.
Saat menggunakan SchedulerX untuk menjalankan pod Kubernetes, perhatikan hal-hal berikut:
Kami menyarankan agar Anda tidak menggunakan pod yang memiliki siklus eksekusi panjang, seperti pod aplikasi web. Eksekusi pod tidak akan pernah berakhir setelah pod dimulai.
Kami menyarankan agar Anda menonaktifkan restart untuk pod. Jika tidak, pod akan terus-menerus direstart.