在 Kubernetes 上部署任务应用程序

本指南介绍如何使用 Spring Cloud Data Flow 在 Kubernetes 上部署和运行一个简单的 spring-cloud-task 应用程序。

我们将部署示例 billsetuptask 应用程序到 Kubernetes。

在 Kubernetes 集群上设置 SCDF

对于本指南,我们需要一个运行着 已部署 Spring Cloud Data Flow 的 Kubernetes 集群。在本例中,我们使用 minikube

验证 Spring Cloud Data Flow 是否正在运行

当 SCDF 在 Kubernetes 上运行时,您应该会看到 scdf-server pod 处于 Running 状态,并且已创建关联的服务。您可以使用以下命令(显示典型输出)来查看 scdf-server

kubectl get all -l app=scdf-server
NAME                              READY   STATUS    RESTARTS   AGE
pod/scdf-server-65789665d-79hrz   1/1     Running   0          5m39s

NAME                  TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
service/scdf-server   LoadBalancer   10.109.181.91   <pending>     80:30403/TCP   5m39s

NAME                          READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/scdf-server   1/1     1            1           5m39s

NAME                                    DESIRED   CURRENT   READY   AGE
replicaset.apps/scdf-server-65789665d   1         1         1       5m39s

注意:在 Minikube 上,serviceEXTRNAL-IP = <pending> 是正常的。

为示例任务应用程序构建 Docker 镜像

  1. 克隆或下载 dataflow samples git 仓库 并导航到 batchsamples 目录。您可以从浏览器 下载批处理示例项目 或运行以下命令从命令行下载它
wget "https://github.com/spring-cloud/spring-cloud-dataflow-samples/blob/main/dataflow-website/batch-developer-guides/batch/batchsamples/dist/batchsamples.zip?raw=true" -O batchsamples.zip
  1. 使用自述文件中的说明构建项目。
  2. 导航到 billsetuptask 目录
  3. 运行以下命令以构建 Docker 镜像
eval $(minikube docker-env)
./mvnw spring-boot:build-image -Dspring-boot.build-image.imageName=springcloudtask/billsetuptask:0.0.1-SNAPSHOT

这些命令将镜像添加到 minikube Docker 注册表。

  1. 通过运行以下命令在提供的镜像列表中查找 springcloudtask/billsetuptask 来验证其存在

    docker images

使用数据流注册、创建和启动任务

我们使用 数据流仪表板 来设置和启动 billsetuptask 应用程序。

首先,我们需要获取 SCDF 服务器 URL,我们可以使用以下命令执行此操作(列表包含输出)

minikube service --url scdf-server
http://192.168.99.100:30403

现在,您可以按照说明 使用数据流注册和启动任务应用程序,使用我们刚刚构建的 Docker 镜像来注册应用程序。