日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

SchedulerX支持定時調度程序、多語言腳本和HTTP接口,也支持調度原生的K8s Job或者Pod。本文介紹如何在Kubernetes環境中部署SchedulerX。

前提條件

接入SchedulerX,具體操作,請參見在Kubernetes集群中部署SchedulerX

創建K8s任務

Shell腳本

如果想通過Pod運行Shell腳本,不需要自己構建鏡像,只需要在任務管理創建一個K8s任務,資源類型選擇Shell-Script,鏡像默認是busybox(也可以替換為自己的鏡像)。

1

單擊運行一次,在Kubernetes集群中可以看到Pod啟動,Pod名稱為schedulerx-shell-{JobId}。7

在SchedulerX控制臺的任務管理頁面可以查詢歷史執行記錄,也可以看到Pod運行的日志。7

Python腳本

如果想通過Pod運行Python腳本,不需要自己構建鏡像,只需要在任務管理創建一個K8s任務,資源類型選擇Python-Script,鏡像默認是Python(也可以替換為自己的鏡像)。

2

單擊運行一次,在Kubernetes集群中可以看到Pod啟動,Pod名稱為schedulerx-python-{JobId}。7

在SchedulerX控制臺任務管理頁面可以查詢歷史執行記錄,也可以看到Pod運行的日志。8

PHP腳本

如果想通過Pod運行PHP腳本,不需要自己構建鏡像,只需要在任務管理創建一個K8s任務,資源類型選擇Php-Script,鏡像默認是php:7.4-cli(也可以替換為自己的鏡像)。

3

單擊運行一次,在Kubernetes集群中可以看到Pod啟動,Pod名稱為schedulerx-php-{JobId}。12

在SchedulerX控制臺任務管理頁面可以查詢歷史執行記錄,也可以看到Pod運行的日志8

Node.js腳本

如果想通過Pod運行Node.js腳本,不需要自己構建鏡像,只需要在任務管理創建一個K8s任務,資源類型選擇Node.js-Script,鏡像默認是node:16(也可以替換自己的鏡像)。

4

單擊運行一次,在Kubernetes集群中可以看到Pod啟動,Pod名稱為schedulerx-node-{JobId}。8

在SchedulerX控制臺任務管理頁面可以查詢歷史執行記錄,也可以看到Pod運行的日志。8

Job-YAML

通過SchedulerX也可以運行K8s原生的Job,任務類型選擇K8s,資源類型選擇Job-YAML。

5

單擊運行一次,在Kubernetes集群中可以看到Job和Pod啟動成功。8

在SchedulerX控制臺任務管理頁面可以查詢歷史執行記錄,也可以看到Pod運行的日志。8

重要

通過SchedulerX運行K8s Job,不建議使用CronJob,定時調度需要使用SchedulerX來配置,否則無法收集每次Pod的執行歷史和日志。

Pod-YAML

通過SchedulerX也可以運行K8s原生的Pod,任務類型選擇K8s,資源類型選擇Pod-YAML。

6

單擊運行一次,在Kubernetes集群中可以看到Pod啟動成功。9

在SchedulerX控制臺的任務管理頁面可以查詢歷史執行記錄,也可以看到Pod運行的日志。9

重要

通過SchedulerX運行K8s Pod,建議不要運行長周期的Pod(比如Web應用,一旦啟動永遠不會結束),重啟策略需要設置成Never(否則Pod會不斷重啟)。

通過環境變量獲取任務參數

SchedulerX系統支持將任務參數預先配置到環境變量中,這樣無論是腳本任務、Pod還是Job,都可以便捷地通過讀取環境變量來獲取所需的各項參數信息。

說明

Schedulerx-Agent 版本需要大于等于1.10.14。

key

描述

SCHEDULERX_JOB_NAME

任務名稱。

SCHEDULERX_SCHEDULE_TIMESTAMP

調度時間的時間戳。

SCHEDULERX_DATA_TIMESTAMP

數據時間的時間戳。

SCHEDULERX_WORKFLOW_INSTANCE_ID

如果有配置工作流,可以獲取工作流實例ID。

SCHEDULERX_JOB_PARAMETERS

任務參數。

SCHEDULERX_INSTANCE_PARAMETERS

任務實例參數。

SCHEDULERX_JOB_SHARDING_PARAMETER

如果是分片任務,可以獲取到分片參數。

如下所示,獲取SchedulerX任務參數值:

image

優勢

相較于K8s原生的Job功能,采用SchedulerX調度K8s Job具有以下顯著優勢:

可在線編輯的腳本Pod

K8s Job常用場景是用來做數據處理和運維,一般以腳本實現居多。原生的使用方式需要把腳本打包到鏡像里,在YAML文件中配置腳本命令。每當需要修改腳本時,研發人員不得不經歷重新構建鏡像并再次發布的繁瑣過程。比如:

apiVersion: batch/v1
kind: Job
metadata:
  name: hello
spec:
  template:
    spec:
      containers:
      - name: hello
        image: busybox
        command: ["sh",  "/root/hello.sh"]
      restartPolicy: Never
  backoffLimit: 4

運用SchedulerX進行K8s任務管理時,您無需構建鏡像或編寫YAML配置腳本。只需在控制臺直接編輯支持Shell、Python、PHP和Node.js等多種語言的腳本內容,系統便會自動將其以Pod方式運行。若需對腳本進行更新,僅需在控制臺重新編輯并保存,下次調度時新版本腳本將自動生效,顯著提升開發和管理K8s Job的工作效率。同時,借助SchedulerX的K8s任務功能,完全屏蔽了容器相關的細節,對于不熟悉容器服務的研發人員而言,這項改進無疑顯著提升了開發效率,為他們帶來了極大的便利。

如下:

image

可視化任務編排

當前在K8s生態系統中,Argo作為一種主流的工作流編排解決方案被廣泛應用。例如:

# The following workflow executes a diamond workflow
# 
#   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的工作流功能,您能夠通過直觀的可視化界面,采用簡單的鼠標拖拽操作來高效編排K8s任務流程,如下圖所示。

image在使用體驗上,相較于Argo,SchedulerX更為便捷易用,尤其是在運行時,它提供了可視化的工作流圖展示,能夠清晰地追蹤任務進度,方便快速識別和定位任務受阻的具體環節,如下圖所示顯示出具體的任務失敗:

image

報警監控

通過SchedulerX對您的Pod和Job進行調度,能夠充分利用其內置的監控報警機制,實現高效的任務狀態跟蹤與異常預警。

  • 支持的報警通道:短信、電話、郵件、WebHook(釘釘/企業微信/飛書)。

  • 支持的報警策略:失敗報警、執行超時報警。

日志服務

使用SchedulerX調度您的Pod和Job時,無需額外開通日志服務,系統將自動收集Pod運行期間產生的日志。一旦Pod執行失敗,您可直接在SchedulerX控制臺查看到詳細的失敗原因并分析,實現高效便捷的問題定位與調試。

image

監控大盤

通過SchedulerX來調度您的Pod和Job,無需另行開通Prometheus服務,即可查看內置的任務監控功能。

image

離在線混布

對于諸如訂單處理等對實時性要求較高的在線定時任務,可在同一進程內直接調用方法進行高效處理,與在線業務無縫集成。而對于實時性要求較低但資源消耗較大的離線定時任務,如報表定時導出,可通過編寫腳本并以啟動獨立Pod的方式運行。SchedulerX平臺支持Java和Kubernetes任務類型,能夠實現離線與在線定時任務的混布調度,靈活滿足不同需求。