2017-10-17 63 views
0

我正在尝试更新部署中的某些值。Kubernetes - 部署无效。无效的值

# kubectl get deploy activemq-deployment -o yaml 

spec: 
. 
. 
    strategy: 
    rollingUpdate: 
     maxSurge: 1 
     maxUnavailable: 0 
    type: RollingUpdate 
. 
. 

我试图在飞行中更新的maxUnavailablemaxSurge值。我使用的命令是:

# kubectl patch deploy activemq-deployment -p '{"spec":{"strategy":{"type":"RollingUpdate","rollingUpdate":{"maxUnavailable":"2","maxSurge":"5"}}}}' 

但是这个命令产生了错误:

The Deployment "activemq-deployment" is invalid: 
* spec.strategy.rollingUpdate.maxUnavailable: Invalid value: "1": must match the regex [0-9]+% (e.g. '1%' or '93%') 
* spec.strategy.rollingUpdate.maxSurge: Invalid value: "5": must match the regex [0-9]+% (e.g. '1%' or '93%') 

看起来像它只是从我期待perfectages。如果是这样,

# kubectl patch deploy activemq-deployment -p '{"spec":{"strategy":{"type":"RollingUpdate","rollingUpdate":{"maxUnavailable":"100%","maxSurge":"100%"}}}}' 
"activemq-deployment" patched 

正如你所看到的,这是成功的。但是当我创建部署文件时,我使用了整数而不是百分比。任何想法为什么补丁命令不让我发布整数值?

回答

0

我打赌$ 1对于因为API看到您所提供的价值观,并希望它是一个百分比(因为YAML,如果你说maxSurge: 5,这将是一个整数,但maxSurge: 5%会字符串)

更新的命令是

kubectl patch deploy activemq-deployment -p '{ 
    "spec": { 
    "strategy": { 
     "type": "RollingUpdate", 
     "rollingUpdate": { 
     "maxUnavailable": 2, 
     "maxSurge": 5 
     } 
    } 
    } 
}' 

,我怀疑它会做什么你打算