Spring Cloud Data Flow:无法运行程序“ docker”

时间:2018-10-19 16:10:01

标签: amazon-web-services docker kubernetes spring-cloud-dataflow

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

我在AWS EC2(Amazon Linux)实例中使用 kops 创建集群并使用 terraform 对其进行部署。

我使用 Helm 图表为Kubernetes安装了Spring Cloud Data Flow。我所有的pod都已启动并且正在运行,我可以访问Spring Cloud Data Flow界面以注册我的dockerized应用程序。我正在使用ECR存储库上传我的Docker映像。

当我要部署流(由时间源和日志接收器组成)时,会弹出一个很大的红色错误消息。我检查了 Skipper 吊舱的日志,并收到以下错误消息,开头为:

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.access$200(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

当我尝试在Windows 10上的本地k8s群集上进行部署时,我已经遇到了此错误,我认为它已链接到Win10平台。

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

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

2 个答案:

答案 0 :(得分:3)

当SCDF docker部署人员的ProcessBuilder尝试从以下路径运行docker local时,似乎找不到exec命令:

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

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

答案 1 :(得分:1)

我发现问题出在哪里。我不好,问题总是在键盘和椅子之间!

我想删除newDf <- droplevels(employ.data[employ.data$employee == "John Doe",])文件中的所有度量标准过程,并且在配置文件中插入了一个错字。用于Skipper启动的JSON环境变量skipper-config.yaml无效,因此data.spring.application.json从未看到将Kubernetes添加到存储库所需的属性!

现在在日志和数据流外壳程序中,我有DeployerInitializationServicedefault帐户。无论如何,谢谢您的帮助:)