Plugins 如何通过Jenkins构建/后期构建步骤在Kubernetes上运行应用程序

Plugins 如何通过Jenkins构建/后期构建步骤在Kubernetes上运行应用程序,plugins,jenkins,kubernetes,Plugins,Jenkins,Kubernetes,我试图寻找一个Jenkins插件(比如AWS codeDeploy),以便将我的应用程序部署到Kubernetes集群。到目前为止,我已经成功地将其推送到Docker注册表,并添加了一些命令行构建步骤以部署到Kubernetes。 看看CloudBees的公告,这似乎是可能的 安装Kubernetes插件给了我错误…如果有帮助,我可以附加一个屏幕截图。。。 此外,这个插件似乎允许您在Docker容器中运行从属程序,而不是部署您自己的应用程序 看了这个视频之后 ,看来我能做到这一点 使用“wit

我试图寻找一个Jenkins插件(比如AWS codeDeploy),以便将我的应用程序部署到Kubernetes集群。到目前为止,我已经成功地将其推送到Docker注册表,并添加了一些命令行构建步骤以部署到Kubernetes。 看看CloudBees的公告,这似乎是可能的

安装Kubernetes插件给了我错误…如果有帮助,我可以附加一个屏幕截图。。。 此外,这个插件似乎允许您在Docker容器中运行从属程序,而不是部署您自己的应用程序

看了这个视频之后 ,看来我能做到这一点 使用“withKubernetes”工作流阶段

但是,将该行添加到我的工作流脚本中会出现以下错误

java.lang.NoSuchMethodError:在中找不到具有Kubernetes的DSL方法[archive,bat,build,catchError,checkout,dir,dockerFingerprintFrom,dockerFingerprintRun,echo,error,fileExists,git,input,load,mail,node,parallel,publishHTML,pwd,readFile,retry,sh,sleep,stage,stash,step,svn,timeout,tool,unarchive,unstash,unstash,unstash,waitUntil,withDockerContainer,withDockerRegistry,withDockerServer,withEnv,wrap,writeFile,ws] 位于org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:107) 位于org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:112) 在groovy.lang.GroovyObject$invokeMethod.call处(未知源) 位于org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) 位于org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) 位于org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:151) 位于org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:21) 位于org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.sandboxiterceptor.onMethodCall(sandboxiterceptor.java:75) 位于org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:149) 位于org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:146) 位于org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:123) 位于com.cloudbees.groovy.cps.sandbox.sandboxivoker.methodCall(sandboxivoker.java:15) 在WorkflowScript.run处(WorkflowScript:17) 未知。未知(未知) atcps.transform(本机方法) 位于com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:69) 位于com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.DispatcherArg(FunctionCallBlock.java:106) 位于com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:79) 位于sun.reflect.GeneratedMethodAccessor290.invoke(未知源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中 位于java.lang.reflect.Method.invoke(Method.java:606) com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72) 位于com.cloudbees.groovy.cps.impl.ClosureBlock.eval(ClosureBlock.java:40) 位于com.cloudbees.groovy.cps.Next.step(Next.java:58) 位于com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:145) 位于org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:19) 位于org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:33) 位于org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:30) 位于org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:106) 位于org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:30) 位于org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:164) 位于org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:271) 访问org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$000(CpsThreadGroup.java:71) 位于org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:180) 位于org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:178) 在org.jenkinsci.plugins.workflow.cps.cpsvmecutorservice$2.call(cpsvmecutorservice.java:47) 在java.util.concurrent.FutureTask.run(FutureTask.java:262)处 在hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112) 位于jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28) 位于java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 在java.util.concurrent.FutureTask.run(FutureTask.java:262)处 位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在java.lang.Thread.run(Thread.java:745)

中,目前为止,只允许在Kubernetes集群中动态运行从机


从Jenkins到Kubernetes的部署没有太多内容,也许这篇文章有帮助

是的,这是工作流插件的一部分,根据kohsuke@的演示,我试图开始工作…我最终使用bash命令从Jenkins推送构建到k8s。好奇你是否使用了带模板参数的滚动更新ument?我不确定它是干什么用的,但听起来好像我可以给它一个Go模板,并可能用上一次构建的信息替换版本或任何其他占位符。我还必须编写bash来提取当前活动的rc名称来进行滚动更新。最多也不可靠。