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 我有 default
和 minikube
帐户。无论如何感谢您的帮助:)
我想在 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 我有 default
和 minikube
帐户。无论如何感谢您的帮助:)