跨多个平台启动应用程序
Spring Cloud Data Flow 允许您从单个实例协调在不同平台上启动应用程序。平台是可以启动应用程序的位置。对于本文档,平台可以是 Kubernetes 集群和命名空间、Cloud Foundry 组织和空间,或物理服务器。本文档的目的是展示几种利用跨多个平台部署的方法。
跨多个 Kubernetes 命名空间启动任务
下图显示了跨命名空间启动任务的常见场景
配置 Spring Cloud Data Flow 和设置环境
- 下载 SCDF 存储库,如使用 kubectl 部署中所述。但是,在继续执行“
选择消息代理”部分之前,我们需要创建命名空间并将平台配置添加到 Spring Cloud Data Flow。 - 运行以下命令创建
practice命名空间(系统已为您创建default命名空间)
kubectl create namespace practice- 配置 Spring Cloud Data Flow 使用的平台。使用文本编辑器打开
<{>SCDF Dir>/src/kubernetes/server/server-deployment.yaml文件,并将SPRING_APPLICATION_JSON属性替换为以下值
- name: SPRING_APPLICATION_JSON
value: '{ "maven": { "local-repository": null, "remote-repositories": { "repo1": { "url": "https://repo.spring.io/libs-snapshot"} } },"spring.cloud.dataflow.task":{"platform.kubernetes.accounts":{"default":{"namespace" : "default"},"practice":{"namespace" : "practice"}}} }'- 继续按照说明操作,从选择消息代理步骤开始,直到完成所有步骤。
- 要让 Spring Cloud Data Flow 在多个命名空间中启动任务,需要更新 Spring Cloud Data Flow 服务的 RBAC 策略。为此,请运行以下命令
kubectl create clusterrolebinding scdftestrole --clusterrole cluster-admin --user=system:serviceaccount:default:scdf-sa为scdf-sa用户将集群角色设置为cluster-admin不建议在生产环境中使用,但在本例中,它仅用于演示目的。
注册预构建任务
本练习使用 Spring Cloud Data Flow 提供的预构建时间戳应用程序。如果您尚未注册预构建的任务应用程序,
- 请在浏览器中打开 Spring Cloud Data Flow UI。
- 单击页面左侧的 **应用程序** 选项卡。
- 单击页面顶部的 **添加应用程序** 按钮。
- 出现 **添加应用程序** 页面时,单击“从 dataflow.spring.io 导入应用程序启动器”选项。
- 单击 **适用于 Docker 的任务应用程序启动器** 单选按钮。
- 点击页面底部的**导入应用程序**按钮。
创建任务定义
在本节中,我们将创建两个任务定义:timestamp-task 和 timestamp-task-2。我们将在特定平台上启动每个任务定义。
创建 timestamp-task 定义
- 点击界面左侧的**任务**选项卡。
- 点击页面上的**创建任务**按钮。
- 在文本框中输入
timestamp。 - 点击**创建任务**按钮。
- 当**创建任务**对话框出现时,在**名称**字段中输入
timestamp-task。 - 点击**创建任务**按钮。
要创建 timestamp-task-2 定义,请按照前面显示的 timestamp-task 说明进行操作,不同之处在于,在出现 创建任务 对话框的步骤中,名称为 timestamp-task-2。
现在,两个任务定义均可用,如下所示
启动任务
在本节中,我们将先在默认平台中启动 timestamp-task,然后在练习平台中启动 timestamp-task-2。为此,请执行以下操作:
- 单击与
timestamp-task任务定义关联的选项控件,然后选择“**启动**”选项。
- 现在选择要在其上启动
timestamp-task的平台 - 在本例中为default命名空间。
- 单击页面底部的“**启动任务**”按钮。
要验证 Pod 是否已执行,您可以在任务执行页面中查看结果,或运行以下 kubectl 命令以查看 default 命名空间中的 Pod:
kubectl get pods --namespace default
NAME READY STATUS RESTARTS AGE
mariadb-b94654bd4-k8vr7 1/1 Running 1 7h38m
rabbitmq-545bb5b7cb-dn5rd 1/1 Running 39 124d
scdf-server-dff599ff-68949 1/1 Running 0 8m27s
skipper-6b4d48ddc4-9p2x7 1/1 Running 0 12m
timestamp-task-v9jrm66p55 0/1 Completed 0 87s要在 practice 命名空间中启动任务,请执行以下操作:
- 单击与
timestamp-task-2任务定义关联的选项控件,然后选择“**启动**”选项。
- 选择您希望启动
timestamp-task的平台 - 在本例中为practice命名空间。
- 单击页面底部的“**启动任务**”按钮。
要验证 Pod 是否已执行,您可以在任务执行页面中查看结果,或运行以下 kubectl 命令以查看 default 命名空间中的 Pod:
kubectl get pods --namespace practice
NAME READY STATUS RESTARTS AGE
timestamp-task-2-nwvk4r89vy 0/1 Completed 0 59s调度任务
在本节中,我们将在不同的平台上创建两个计划。通过使用 Spring Cloud Data Flow 的 shell,我们创建一个计划,以便在 default 平台上每分钟启动一次 timestamp-task。 为此,请执行以下操作
- 通过从 Spring Cloud Data Flow shell 运行以下命令来调度任务
task schedule create --name timestamp-task-sched --definitionName timestamp-task --expression "*/1 * * * *" --platform default它看起来像这样
dataflow:>task schedule create --name timestamp-task-sched --definitionName timestamp-task --expression "*/1 * * * *" --platform default
Created schedule 'timestamp-task-sched'- 通过运行
task schedule list --platform default命令验证是否已创建计划
dataflow:>task schedule list --platform default
╔════════════════════╤════════════════════╤════════════════════════════════════════════════════╗
║ Schedule Name │Task Definition Name│ Properties ║
╠════════════════════╪════════════════════╪════════════════════════════════════════════════════╣
║timestamp-task-sched│timestamp-task │spring.cloud.scheduler.cron.expression = */1 * * * *║
╚════════════════════╧════════════════════╧════════════════════════════════════════════════════╝- 要验证计划的应用程序是否已由 CronJob 正确创建和启动,您可以通过从 SCDF shell 运行以下命令来查看结果:
task execution list(或者,您可以运行以下kubectl命令,并查看一分钟后开始出现的timestamp-task-schedpod。)
kubectl get pods --namespace default
NAME READY STATUS RESTARTS AGE
mariadb-b94654bd4-k8vr7 1/1 Running 1 29h
rabbitmq-545bb5b7cb-dn5rd 1/1 Running 39 125d
scdf-server-845879c9b7-xs8t6 1/1 Running 3 4h45m
skipper-6b4d48ddc4-bkvph 1/1 Running 0 4h48m
timestamp-task-sched-1591904880-p48cx 0/1 Completed 0 33s- 要删除计划,请运行以下命令
dataflow:>task schedule destroy --name timestamp-task-sched --platform default
Deleted task schedule 'timestamp-task-sched'使用 Spring Cloud Data Flow 的 shell,我们创建一个计划,以便在 practice 平台上每分钟启动一次 timestamp-task-2。
- 要调度任务,请从 Spring Cloud Data Flow shell 运行以下命令
task schedule create --name timestamp-task-2-sched --definitionName timestamp-task --expression "*/1 * * * *" --platform practice它看起来像这样
dataflow:>task schedule create --name timestamp-task-2-sched --definitionName timestamp-task --expression "*/1 * * * *" --platform practice
Created schedule 'timestamp-task-2-sched'- 通过运行
task schedule list --platform practice命令验证是否已创建计划,如下所示。
dataflow:>task schedule list --platform practice
╔══════════════════════╤════════════════════╤════════════════════════════════════════════════════╗
║ Schedule Name │Task Definition Name│ Properties ║
╠══════════════════════╪════════════════════╪════════════════════════════════════════════════════╣
║timestamp-task-2-sched│timestamp-task-2 │spring.cloud.scheduler.cron.expression = */1 * * * *║
╚══════════════════════╧════════════════════╧════════════════════════════════════════════════════╝- 您可以通过从 SCDF shell 运行以下命令来验证结果:
task execution list。或者,您可以使用以下命令启动kubectl命令并查看结果
glennrenfro ~/scripts: kubectl get pods --namespace practice
NAME READY STATUS RESTARTS AGE
timestamp-task-2-sched-1591905600-rnfks 0/1 Completed 0 17s- 要删除计划,请运行以下命令
dataflow:>task schedule destroy --name timestamp-task-2-sched --platform practioce
Deleted task schedule 'timestamp-task-2-sched'从外部 Spring Cloud Data Flow 启动跨多个平台的任务
在此场景中,Spring Cloud Data Flow 及其数据存储在 Kubernetes 集群外部运行,用户希望能够在默认和实践命名空间中启动任务,同时能够从 SCDF 监控任务执行。
配置 Spring Cloud Data Flow
对于本练习,您需要访问 shell。为 Spring Cloud Data Flow 设置以下环境属性并启动它
export spring_datasource_url=<your database url>
export spring_datasource_username=<your username>
export spring_datasource_password=<your password>
export spring_datasource_driverClassName=<your driverClassName>
export spring_profiles_active=cloud
export jbp_config_spring_auto_reconfiguration='{enabled: false}'
export spring_cloud_dataflow_features_schedulesEnabled=true
export spring_cloud_dataflow_features_tasks_enabled=true
export SPRING_APPLICATION_JSON="{\"spring.cloud.dataflow.task\":{\"platform.local.accounts\":{\"default\":{\"timeout\" : \"60\"}},\"platform.kubernetes.accounts\":{\"kzone\":{\"namespace\" : \"default\"},\"practice\":{\"namespace\" : \"practice\"}}}}"
java -jar spring-cloud-dataflow-server/target/spring-cloud-dataflow-server-<version>.jar配置 Kubernetes 中的数据库服务以连接到外部数据库
在本练习中启动的任务需要访问连接到 SCDF 正在使用的外部数据库的数据库服务。为此,我们创建一个数据库服务以及一个引用外部数据库的端点。在本例中,我们连接到 MariaDB 数据库。
- 设置数据库服务
apiVersion: v1
kind: Service
metadata:
name: mariadb-mac
spec:
ports:
- protocol: TCP
port: 1443
targetPort: 3306- 设置指向本地 MariaDB 的端点
apiVersion: v1
kind: Endpoints
metadata:
name: mariadb-mac
subsets:
- addresses:
- ip: 192.168.1.72
ports:
- port: 3306- 现在,获取新创建的
mariadb-mac服务的集群 IP,以便您可以使用它来启动和调度任务。为此,请运行以下命令(在本例中,MariaDB 实例在您的本地机器上运行)
kubectl get svc mariadb-mac此命令的结果类似于
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
mariadb-mac ClusterIP <ext db conn> <none> 1443/TCP 44m注册应用程序
要注册练习所需的应用程序,请按照此部分中的说明进行操作。
启动任务
启动任务时添加以下命令行参数(将 <ext db conn> 替换为 kubectl get svc mariadb-mac 提供的 CLUSTER-IP)
--spring.datasource.url=jdbc:mariadb://<外部数据库连接>:1443/<您的数据库>
它应该类似于下图:
要验证任务是否已启动,请选择页面左侧的**任务执行**选项卡,以查看类似于下图的结果:
此外,您还可以通过查看 default 命名空间的 Pod 列表来验证启动
kubectl get pods --namespace default
NAME READY STATUS RESTARTS AGE
timestamp-task-kzkpqjp936 0/1 Completed 0 38s启动任务时添加以下命令行参数
--spring.datasource.url=jdbc:mariadb://<外部数据库连接>:1443/<您的数据库>
它应该类似于下图:
要验证任务是否已启动,请选择页面左侧的**任务执行**选项卡,以查看类似于下图的结果:
此外,您可以通过查看 practice 命名空间的 Pod 列表来验证启动,如下例所示
kubectl get pods --namespace practice
NAME READY STATUS RESTARTS AGE
timestamp-task-2-pkwzevl0mp 0/1 Completed 0 48s调度任务
在本节中,我们将在不同的平台上创建两个计划。通过使用 Spring Cloud Data Flow 的 shell,我们创建一个计划,该计划在 default 平台上每分钟启动一次 timestamp-task。
- 要调度任务,请从 Spring Cloud Data Flow shell 运行以下命令
task schedule create --name timestamp-task-sched --definitionName timestamp-task --expression "*/1 * * * *" --platform default --properties "app.docker-timestamp.spring.datasource.url=jdbc:mariadb://<ext db conn>:1443/<your db>"它看起来像这样
dataflow:>task schedule create --name timestamp-task-sched --definitionName timestamp-task --expression "*/1 * * * *" --platform default --properties "app.docker-timestamp.spring.datasource.url=jdbc:mariadb://10.100.231.80:1443/task"
Created schedule 'timestamp-task-sched'- 要验证是否已创建计划,请运行
task schedule list --platform default命令并查看结果。
dataflow:>task schedule list --platform default
╔════════════════════╤════════════════════╤════════════════════════════════════════════════════╗
║ Schedule Name │Task Definition Name│ Properties ║
╠════════════════════╪════════════════════╪════════════════════════════════════════════════════╣
║timestamp-task-sched│timestamp-task │spring.cloud.scheduler.cron.expression = */1 * * * *║
╚════════════════════╧════════════════════╧════════════════════════════════════════════════════╝- 要验证计划的应用程序是否已由 CronJob 正确创建和启动,请从 SCDF Shell 运行
task execution list或运行以下kubectl命令以查看timestamp-task-schedpod 是否在一分钟后开始出现。
kubectl get pods --namespace default
NAME READY STATUS RESTARTS AGE
timestamp-task-sched-1592229780-f5w6w 0/1 Completed 0 15s- 要删除计划,请运行以下命令
dataflow:>task schedule destroy --name timestamp-task-sched --platform default
Deleted task schedule 'timestamp-task-sched'通过使用 Spring Cloud Data Flow 的 shell,我们创建一个计划,该计划在 practice 平台上每分钟启动一次 timestamp-task-2。
- 要调度任务,请从 Spring Cloud Data Flow shell 运行以下命令
task schedule create --name timestamp-task-2-sched --definitionName timestamp-task --expression "*/1 * * * *" --platform practice --properties "app.docker-timestamp.spring.datasource.url=jdbc:mariadb://<ext db conn>:1443/<your db>"它看起来像这样
dataflow:>task schedule create --name timestamp-task-2-sched --definitionName timestamp-task --expression "*/1 * * * *" --platform practice --properties "app.docker-timestamp.spring.datasource.url=jdbc:mariadb://10.100.231.80:1443/task"
Created schedule 'timestamp-task-2-sched'- 要验证是否已创建计划,请运行
task schedule list --platform practice命令并查看结果。
dataflow:>task schedule list --platform practice
╔══════════════════════╤════════════════════╤════════════════════════════════════════════════════╗
║ Schedule Name │Task Definition Name│ Properties ║
╠══════════════════════╪════════════════════╪════════════════════════════════════════════════════╣
║timestamp-task-2-sched│timestamp-task-2 │spring.cloud.scheduler.cron.expression = */1 * * * *║
╚══════════════════════╧════════════════════╧════════════════════════════════════════════════════╝
dataflow:>task schedule destroy --name timestamp-task-2-sched --platform practice
Deleted task schedule 'timestamp-task-2-sched'- 要验证计划的应用程序是否已由 CronJob 正确创建和启动,请从 SCDF Shell 运行
task execution list或运行以下kubectl命令以查看timestamp-task-schedpod 是否在一分钟后开始出现。
glennrenfro ~/scripts: kubectl get pods --namespace practice
NAME READY STATUS RESTARTS AGE
timestamp-task-2-sched-1592230980-bngbc 0/1 Completed 0 19s- 要删除计划,请运行以下命令
dataflow:>task schedule destroy --name timestamp-task-2-sched --platform practice
Deleted task schedule 'timestamp-task-2-sched'在不同类型的平台上启动任务
配置 Spring Cloud Data Flow
对于本练习,您需要访问 shell。设置 Spring Cloud Data Flow 的以下环境属性并启动它。
export spring_datasource_url=<your database url>
export spring_datasource_username=<your username>
export spring_datasource_password=<your password>
export spring_datasource_driverClassName=<your database driverClassNanme>
export spring_profiles_active=cloud
export jbp_config_spring_auto_reconfiguration='{enabled: false}'
export spring_cloud_dataflow_features_schedulesEnabled=true
export spring_cloud_dataflow_features_tasks_enabled=true
export SPRING_APPLICATION_JSON="{\"spring.cloud.dataflow.task\":{\"platform.kubernetes.accounts\":{\"kzone\":{\"namespace\" : \"default\"}},\"platform.cloudfoundry.accounts\":{\"cfzone\":{\"connection\":{\"url\":\"https://myconnection\",\"domain\":\"mydomain\",\"org\":\"myorg\",\"space\":\"myspace\",\"username\":\"admin\",\"password\":\"password\",\"skipSslValidation\":true},\"deployment\":{\"deleteRoutes\":false,\"services\":\"garsql,atscheduler\",\"enableRandomAppNamePrefix\":false,\"memory\":3072,\"schedulerUrl\":\"<myschedulerurl>\"},}}}}{\"spring.cloud.dataflow.task\":{\"platform.kubernetes.accounts\":{\"kzone\":{\"namespace\" : \"default\"}}}}{\"spring.cloud.dataflow.task\":{\"platform.local.accounts\":{\"local\":{\"timeout\" : \"60\"}}}}"
java -jar spring-cloud-dataflow-server/target/spring-cloud-dataflow-server-2.6.0.BUILD-SNAPSHOT.jar本练习假设用户拥有一个可从 Cloud Foundry 和 Kubernetes 环境访问的外部数据库。
注册应用程序
在本练习中,SCDF 将启动时间戳应用程序的 Docker 和 Maven 镜像。
注册应用程序
- 按照注册预构建任务中的说明,注册 SCDF 提供的示例 docker 任务应用程序。
- 如下所示注册时间戳的 maven 实例
- 点击页面顶部的**添加应用程序**按钮,如下图所示:
- 当出现**添加应用程序**页面时,点击**注册一个或多个应用程序**单选按钮,如下图所示:
- 输入信息,如下图所示:
- 点击页面底部的**导入应用程序**按钮。
创建任务定义
在本节中,我们将创建两个任务定义:timestamp-task 和 timestamp-task-2。每个任务定义都在特定的平台上启动。
要创建 k8-timestamp 定义,请执行以下操作:
- 单击界面左侧的**任务**选项卡,如下图所示
- 单击**创建任务**按钮。
- 在文本框中输入
timestamp。 - 单击**创建任务**按钮,如下图所示:
- 出现**创建任务**对话框时,在**名称**字段中输入
k8-timestamp。 - 点击 **创建任务 (CREATE THE TASK)** 按钮,如下图所示:
创建 cf-timestamp 定义:
- 单击界面左侧的**任务**选项卡,如下图所示
- 单击**创建任务**按钮。
- 在文本框中输入
maven-timestamp。 - 点击 **创建任务 (CREATE TASK)** 按钮,如下图所示:
- 当 **创建任务 (Create Task)** 对话框出现时,在 **名称 (Name)** 字段中输入
cf-timestamp。 - 点击 **CREATE THE TASK(创建任务)** 按钮,如下图所示:
现在,两个任务定义都可用,如下图所示
启动任务
在本部分中,我们将分别在 cfzone(Cloud Foundry)平台上启动 cf-timestamp,在 kzone(Kubernetes)平台上启动 k8-timestamp。
- 点击与
cf-timestamp任务定义关联的行左侧的选项控件,然后选择 **Launch(启动)** 选项,如下图所示:
- 现在,选择您要启动
cf-timestamp的平台(在本例中为cfzone命名空间),如下图所示:
- 单击页面底部的“**启动任务**”按钮。
要验证应用程序是否已运行,您可以在任务执行页面中查看结果,或启动以下 cf apps 命令以在已配置的组织和空间中查看应用程序。
cf tasks cf-timestamp
Getting tasks for app cf-timestamp in org scheduling / space glenn as admin...
OK
id name state start time command
7 cf-timestamp SUCCEEDED Mon, 15 Jun 2020 18:09:00 UTC JAVA_OPTS="-agentpath:$PWD/.java-buildpack/open_jdk_jre/bin/jvmkill-1.16.0_RELEASE=printHeapHistogram=1 -Djava.io.tmpdir=$TMPDIR -XX:ActiveProcessorCount=$(nproc) -Djava.ext.dirs=$PWD/.java-buildpack/container_security_provider:$PWD/.java-buildpack/open_jdk_jre/lib/ext -Djava.security.properties=$PWD/.java-buildpack/java_security/java.security $JAVA_OPTS" && CALCULATED_MEMORY=$($PWD/.java-buildpack/open_jdk_jre/bin/java-buildpack-memory-calculator-3.13.0_RELEASE -totMemory=$MEMORY_LIMIT -loadedClasses=14335 -poolType=metaspace -stackThreads=250 -vmOptions="$JAVA_OPTS") && echo JVM Memory Configuration: $CALCULATED_MEMORY && JAVA_OPTS="$JAVA_OPTS $CALCULATED_MEMORY" && MALLOC_ARENA_MAX=2 SERVER_PORT=$PORT eval exec $PWD/.java-buildpack/open_jdk_jre/bin/java $JAVA_OPTS -cp $PWD/. org.springframework.boot.loader.JarLauncher现在,要在 kzone (kubernetes) 平台上的默认命名空间中启动任务。
- 单击与
k8-timestamp任务定义关联的行上的选项控件,然后选择“**启动**”选项,如下图所示:
- 现在选择您希望启动
k8-timestamp的平台 - 在本例中为kzone命名空间,如下图所示:
- 单击页面底部的“**启动任务**”按钮。
要验证 Pod 是否已运行,您可以在任务执行页面中查看结果,或通过启动以下 kubectl 命令来查看 default 命名空间中的 Pod
kubectl get pods
NAME READY STATUS RESTARTS AGE
k8-timestamp-rpqw00d175 0/1 Completed 0 39s调度任务
在本节中,我们将创建两个计划,每个计划都在不同的平台上。通过使用 Spring Cloud Data Flow 的 shell,我们创建一个计划,该计划每分钟在 cfzone Cloud Foundry 平台上启动一次 cf-timestamp 任务定义,并在 minikube 的 default 命名空间上启动 k8-timestamp 任务定义。
- 为 Cloud Foundry 平台创建计划
task schedule create --name timestamp-task-cf-sched --definitionName cf-timestamp --expression "*/1 * ? * *" --platform cfzone --properties "app.maven-timestamp.spring.datasource.url=<your database url>"- 要验证计划是否已创建,请运行
task schedule list --platform cfzone命令并查看结果
task schedule list --platform cfzone
╔═══════════════════════╤════════════════════╤════════════════════════════════════════════════════╗
║ Schedule Name │Task Definition Name│ Properties ║
╠═══════════════════════╪════════════════════╪════════════════════════════════════════════════════╣
║timestamp-task-cf-sched│cf-timestamp │spring.cloud.scheduler.cron.expression = */1 * ? * *║
╚═══════════════════════╧════════════════════╧════════════════════════════════════════════════════╝- 通过对您配置的组织和空间运行
cf apps命令,验证任务定义定义的应用程序是否已部署到 Cloud Foundry
cf apps
Getting apps in org scheduling / space glenn as admin...
name requested state instances memory disk urls
cf-timestamp stopped 0/1 3G 1G- 通过对您配置的组织和空间运行
cf job-history timestamp-task-cf-sched命令,验证计划的timestamp-task-cf-sched是否实际启动
cf job-history timestamp-task-cf-sched
Getting scheduled job history for timestamp-task-cf-sched in org scheduling / space glenn as admin
1 - 6 of 6 Total Results
Execution GUID Execution State Scheduled Time Execution Start Time Execution End Time Exit Message
4c588ee2-833d-47a6-84cb-ebfcc90857e9 SUCCEEDED Mon, 15 Jun 2020 18:07:00 UTC Mon, 15 Jun 2020 18:07:00 UTC Mon, 15 Jun 2020 18:07:00 UTC 202 - Cloud Controller Accepted Task- 通过运行 SCDF shell
task schedule destroy命令删除计划
```shell script
task schedule destroy --name timestamp-task-k8-sched --platform kzone
Deleted task schedule 'timestamp-task-k8-sched'- 为 Kubernetes 平台创建计划
task schedule create --name timestamp-task-k8-sched --definitionName k8-timestamp --expression "*/1 * * * *" --platform kzone --properties "app.timestamp.spring.datasource.url=<your database url>"- 通过运行
task schedule list --platform kzone命令验证计划是否已创建,并查看结果
task schedule list --platform kzone
╔═══════════════════════╤════════════════════╤════════════════════════════════════════════════════╗
║ Schedule Name │Task Definition Name│ Properties ║
╠═══════════════════════╪════════════════════╪════════════════════════════════════════════════════╣
║timestamp-task-k8-sched│k8-timestamp │spring.cloud.scheduler.cron.expression = */1 * * * *║
╚═══════════════════════╧════════════════════╧════════════════════════════════════════════════════╝- 现在,通过在默认命名空间上运行
kubectl get pods命令,验证由任务定义定义的应用程序是否已部署到 Kubernetes。
glennrenfro ~/scripts: kubectl get pods
NAME READY STATUS RESTARTS AGE
timestamp-task-k8-sched-1592246880-4fx2p 0/1 Completed 0 14s- 现在,通过运行 SCDF shell
task schedule destroy命令删除计划。
task schedule destroy --name timestamp-task-k8-sched --platform kzone
Deleted task schedule 'timestamp-task-k8-sched'