All Products
Search
Document Center

SchedulerX:Deploy SchedulerX di kluster Kubernetes

Last Updated:Aug 21, 2026

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:

Show code

apiVersion: batch/v1
kind: Job
metadata:
  name: hello
spec:
  template:
    spec:
      containers:
      - name: hello
        image: registry.cn-hangzhou.aliyuncs.com/test/hello:1.0.0
        command: ["sh",  "/root/hello.sh"]
      restartPolicy: Never
  backoffLimit: 4

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:

Show code

# Alur kerja berikut mengeksekusi alur kerja diamond
#
#   A
#  / \
# B   C
#  \ /
#   D
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: dag-diamond-
spec:
  entrypoint: diamond
  templates:
  - name: diamond
    dag:
      tasks:
      - name: A
        template: echo
        arguments:
          parameters: [{name: message, value: A}]
      - name: B
        depends: "A"
        template: echo
        arguments:
          parameters: [{name: message, value: B}]
      - name: C
        depends: "A"
        template: echo
        arguments:
          parameters: [{name: message, value: C}]
      - name: D
        depends: "B && C"
        template: echo
        arguments:
          parameters: [{name: message, value: D}]

  - name: echo
    inputs:
      parameters:
      - name: message
    container:
      image: alpine:3.7
      command: [echo, "{{inputs.parameters.message}}"]

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.null

  • ExitCode: 255 Reason: Error

  • Argument 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.

p452558.png

Prasyarat

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:

Show code

apiVersion: v1
kind: ServiceAccount
metadata:
  name: schedulerx
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: schedulerx-role
rules:
  - apiGroups: [""]
    resources: ["pods"]
    verbs: ["create","delete","get","list","patch","update","watch"]
  - apiGroups: [""]
    resources: ["pods/log"]
    verbs: ["get","list","watch"]
  - apiGroups: [""]
    resources: ["configmaps"]
    verbs: ["create","delete","get","list","patch","update"]
  - apiGroups: [""]
    resources: ["events"]
    verbs: ["watch"]
  - apiGroups: ["batch"]
    resources: ["jobs","cronjobs"]
    verbs: ["create","delete","get","list","patch","update","watch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: schedulerx-binding
subjects:
  - kind: ServiceAccount
    name: schedulerx
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: schedulerx-role

Jika Anda ingin menjadwalkan job lintas namespace, Anda harus memanggil operasi API ClusterRole dan ClusterRoleBinding.

Show code

apiVersion: v1
kind: ServiceAccount
metadata:
  name: schedulerx
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: schedulerx-cluster-role
rules:
  - apiGroups: [""]
    resources: ["pods"]
    verbs: ["create","delete","get","list","patch","update","watch"]
  - apiGroups: [""]
    resources: ["pods/log"]
    verbs: ["get","list","watch"]
  - apiGroups: [""]
    resources: ["configmaps"]
    verbs: ["create","delete","get","list","patch","update"]
  - apiGroups: [""]
    resources: ["events"]
    verbs: ["watch"]
  - apiGroups: ["batch"]
    resources: ["jobs","cronjobs"]
    verbs: ["create","delete","get","list","patch","update","watch"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: schedulerx-cluster-binding
subjects:
  - kind: ServiceAccount
    name: schedulerx
    namespace: <NAMESPACE1>
  - kind: ServiceAccount
    name: schedulerx
    namespace: <NAMESPACE2>
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: schedulerx-cluster-role

Langkah 2: Instal agen SchedulerX

Kode contoh berikut menunjukkan konfigurasi file schedulerx-agent.yaml:

Show schedulerx-agent.yaml configuration

apiVersion: apps/v1
kind: Deployment
metadata:
  name: schedulerx-agent
  labels:
    app: schedulerx-agent
spec:
  replicas: 1
  selector:
    matchLabels:
      app: schedulerx-agent
  template:
    metadata:
      labels:
        app: schedulerx-agent
    spec:
      serviceAccountName: schedulerx
      containers:
      - name: schedulerx-agent
        image: schedulerx-registry.cn-hangzhou.cr.aliyuncs.com/schedulerx2/agent:latest-amd64
        imagePullPolicy: Always
        resources:
          requests:
            cpu: 500m
        env:
          - name: "SCHEDULERX_ENDPOINT"
            value: "${SCHEDULERX_ENDPOINT}"
          - name: "SCHEDULERX_NAMESPACE"
            value: "${SCHEDULERX_NAMESPACE}"
          - name: "SCHEDULERX_GROUPID"
            value: "${SCHEDULERX_GROUPID}"
          - name: "SCHEDULERX_APPKEY"
            value: "${SCHEDULERX_APPKEY}"
          - name: "SCHEDULERX_STARTER_MODE"
            value: "pod"
        livenessProbe: 
          exec: 
            command: ["/bin/bash","/root/health.sh"]
          timeoutSeconds: 30
          initialDelaySeconds: 30

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_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.

Setelah Deployment selesai, verifikasi koneksi dengan mencari instans baru di halaman Application Management di konsol SchedulerX.

Metode 2: Deploy SchedulerX menggunakan paket Helm

Prasyarat

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.tgz

Langkah 2: Instal paket Helm SchedulerX

  1. Dapatkan parameter akses aplikasi di konsol SchedulerX.

    1. Masuk ke konsol SchedulerX.

    2. Di bilah navigasi atas, pilih wilayah.

    3. Di panel navigasi sebelah kiri, klik Application Management.

    4. Di halaman Application Management, temukan aplikasi Anda dan klik Access Configuration di kolom Actions. Di panel Access Configuration, pilih K8s.

  2. Jalankan perintah instalasi berikut:

    Catatan
    • Ganti 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          13s

    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_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.66

Prasyarat

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:

Catatan

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-Script

  • Application 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 busybox

  • mountPath: Masukkan script/shell

  • imagePullPolicy: 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-Script

  • Application ID: Pilih aplikasi target

  • Task type: Pilih k8s

  • Resource type: Pilih Python-Script

  • Di editor kode, masukkan skrip Python, misalnya import sys dan print('Hello, World!')

  • Template type: Pilih Standard template

  • Image: Masukkan python

  • mountPath: Masukkan script/python

  • imagePullPolicy: 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-Script

  • Application 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-cli

  • mountPath: Masukkan script/php

  • imagePullPolicy: 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-Script

  • Application 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:16

  • mountPath: script/node

  • imagePullPolicy: 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-YAML

  • Application 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: 4

Klik 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-YAML

  • Application 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.

Catatan

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.