我尝试使用Gradle和Fabric8 Java kubernetes-client在CI中自动部署测试版本。
我试图找到正确的语法来使用新的Docker图像标记更新RC(不是:最新的)。
像...一样的东西。
client.replacationControllers()
.inNamespace('default')
.withName('mycirc')
.edit()
.editSpec()
.editTemplate()
.editSpec()
.withContainer('mycontainername')
.withImage('myimage:newtag')
.endContainer() // <--- Not sure how to do this previous line
.endSpec()
.endTemplate()
.endSpec()
.done()
我们可以更新容器而无需完全删除和重建容器吗?
答案 0 :(得分:1)
// Update the RC - change the image to apache
client.replicationControllers().inNamespace("thisisatest").withName("nginx-controller").edit().editSpec().editTemplate().withNewSpec()
.addNewContainer().withName("nginx").withImage("httpd")
.addNewPort().withContainerPort(80).endPort()
.endContainer()
.endSpec()
.endTemplate()
.endSpec().done();
虽然正如评论中指出的那样,这可能不会立即更新pod,除非客户端正在这样做。
看起来客户端也支持滚动更新,它将更新pod: 。client.replicationControllers()inNamespace( “thisisatest”)withName( “nginx的控制器”)轧制()updateImage( “nginx的”);。。。
答案 1 :(得分:0)
您还可以通过以下代码
对副本集进行滚动更新
[ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: site]
System.Web.HttpRuntime.HostingInit(HostingEnvironmentFlags hostingFlags, PolicyLevel policyLevel, Exception appDomainCreationException) +280
[HttpException (0x80004005): Specified argument was out of the range of valid values.
Parameter name: site]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +10043436
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +95
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254