Spring 云数据流:无法 运行 程序 "docker"

Spring Cloud Data Flow : Cannot run program "docker"

我想在 AWS 上的 Kubernetes 集群上使用 Kinesis 流部署 Spring 引导应用程序。

我在 AWS EC2 (Amazon Linux) 实例中使用 kops 创建我的集群并使用 terraform 部署它.

我使用 Helm chart 安装了 Spring Cloud Data Flow for Kubernetes。我所有的 pods 都已启动并且 运行 我可以访问 Spring 云数据流接口以注册我的 dockerized 应用程序。我正在使用 ECR 存储库上传我的 Docker 图片。

当我想要部署流(由时间源和日志接收器组成)时,会弹出一个漂亮的红色大错误消息。我检查了 Skipper pod 的日志,发现以下错误消息以 :

开头
org.springframework.cloud.skipper.SkipperException: Could not install AppDeployRequest

并以 :

结束
Caused by: java.io.IOException: Cannot run program "docker" (in directory "/tmp/spring-cloud-deployer-5769885450333766520/time-log-kinesis-stream-1539963209716/time-log-kinesis-stream.log-sink-kinesis-app-v1"): error=2, No such file or directory
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) ~[na:1.8.0_111-internal]
        at org.springframework.cloud.deployer.spi.local.LocalAppDeployer$AppInstance.start(LocalAppDeployer.java:386) ~[spring-cloud-deployer-local-1.3.7.RELEASE.jar!/:1.3.7.RELEASE]
        at org.springframework.cloud.deployer.spi.local.LocalAppDeployer$AppInstance.start(LocalAppDeployer.java:414) ~[spring-cloud-deployer-local-1.3.7.RELEASE.jar!/:1.3.7.RELEASE]
        at org.springframework.cloud.deployer.spi.local.LocalAppDeployer$AppInstance.access0(LocalAppDeployer.java:296) ~[spring-cloud-deployer-local-1.3.7.RELEASE.jar!/:1.3.7.RELEASE]
        at org.springframework.cloud.deployer.spi.local.LocalAppDeployer.deploy(LocalAppDeployer.java:199) ~[spring-cloud-deployer-local-1.3.7.RELEASE.jar!/:1.3.7.RELEASE]
        ... 54 common frames omitted
Caused by: java.io.IOException: error=2, No such file or directory
        at java.lang.UNIXProcess.forkAndExec(Native Method) ~[na:1.8.0_111-internal]
        at java.lang.UNIXProcess.<init>(UNIXProcess.java:247) ~[na:1.8.0_111-internal]
        at java.lang.ProcessImpl.start(ProcessImpl.java:134) ~[na:1.8.0_111-internal]
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) ~[na:1.8.0_111-internal]
        ... 58 common frames omitted

我尝试在Windows10 上的本地k8s 集群上部署时已经出现此错误,我认为它链接到Win10 平台。

我正在使用 spring-cloud-dataflow-server-kubernetes 版本 1.6.2.RELEASE.

我真的不知道为什么会出现这个错误。谢谢!

当 SCDF local 部署者的 ProcessBuilder 尝试从这里 运行 docker exec 时,它似乎找不到 docker 命令路径:

/tmp/spring-cloud-deployer-5769885450333766520/time-log-kinesis-stream-1539963209716/time-log-kinesis-stream.log-sink-kinesis-app-v1

SCDF 在 运行 执行 docker 命令之前将上述路径设置为其工作目录,因此 docker 预计从该位置 运行。

我找到问题出在哪里了。不好意思,问题总是出在键盘和椅子之间!

我想删除 skipper-config.yaml 文件中的所有度量过程,但我在配置文件中插入了一个拼写错误。 Skipper 启动的 JSON 环境变量 data.spring.application.json 无效,因此 DeployerInitializationService 从未看到将 Kubernetes 添加到存储库所需的属性!

现在在日志和数据流中 shell 我有 defaultminikube 帐户。无论如何感谢您的帮助:)