2017-10-14 10 views
1

저는 SCDF Kubernetes Server를 사용하여 Spring Cloud Task를 배포합니다. 내가 SCDF는 Kubernetes 서버의 봄 클라우드 작업을 시작할 때, 나는이 이상한 문제를 발견, 세부 사항은 아래를 참조하십시오 :Spring Cloud Task가 SCDF에서 작동하지 않을 수 있습니다. Kubernetes

  1. 봄 클라우드 작업을 배포, 인수와 함께 포드가는 Kubernetes, see Pod picture에서 생산됩니다. 문제는 포드의 인수가 Spring Cloud Task로 전달 될 수 없다는 것입니다.
  2. 스프링 클라우드 태스크를 시작할 때, 형식이 app.mytask.test = aaa 인 일부 속성을 추가하려면 속성이 Spring Cloud Task로 전달할 수없고 모든 인수를 무시할 수있다.

누락되었거나 버그가 있습니까? 제게 조언을 해주십시오. 감사합니다.

답변

0

왜 인수가 업무용 응용 프로그램에 전달되지 않았다고 생각합니까? 그것은 나를 위해 잘 작동합니다.

dataflow:>app register --type task --name hello --uri docker://dturanski/hello-world-task:v2 
dataflow:>task create --name hello --definition "hello" 
dataflow:>task launch hello --arguments "app.mytesk.test=aaa" 

로그 파일 :

Starting: TaskExecution{executionId=5, parentExecutionId=null, exitCode=null, taskName='hello', startTime=Sat Oct 14 21:21:42 GMT 2017, endTime=null, exitMessage='null', externalExecutionId='null', errorMessage='null', arguments=[--spring.datasource.username=root,spring.cloud.task.name=hello, spring.datasource.url=jdbc:mysql://10.59.251.149:3306/dataflow, -spring.datasource.driverClassName=org.mariadb.jdbc.Driver, --spring.datasource.password=srz427UgQ0, app.mytesk.test=aaa, -spring.cloud.task.executionid=5]} 
arg: --spring.datasource.username=root 
arg: --spring.cloud.task.name=hello 
arg: --spring.datasource.url=jdbc:mysql://10.59.251.149:3306/dataflow 
arg: --spring.datasource.driverClassName=org.mariadb.jdbc.Driver 
arg: --spring.datasource.password=srz427UgQ0 
arg: app.mytesk.test=aaa 
arg: --spring.cloud.task.executionid=5 

사실, 인수가 이미 표준 Starting: TaskExecution 메시지에 표시됩니다 난 그냥 인수를 인쇄하는 간단한 작업을 만들었습니다.

+0

SCDF kubernetes 서버를 사용하여 작업 응용 프로그램을 배포하고 환경 변수를 작업 응용 프로그램에 표시 할 수 있지만 인수를 표시 할 수 없으면 응용 프로그램의 ApplicationArguments의 내용을 인쇄하면 빈 것으로 나타납니다 – kyo

+0

spring.cloud.deployer.kubernetes.entryPointStyle = shell을 변경하면 속성이 환경 변수를 통해 전달되고 작업 app에 표시됩니다. – kyo

+0

SCDF 로컬 서버를 사용하는 경우에는 문제가되지 않습니다. – kyo