k8s:创建CronJob图表时出错

我有一个关于resources字段的舵验证的问题CronJob图表,欢迎任何帮助。k8s:创建CronJob图表时出错

我用apiVersion批/ v1beta1

我得到的错误,当我尝试从values.yaml

错误retrive值:Error: error validating "": error validating data: found `invalid field requests for v1.Container

命令我运行:helm install --dry-run --debug my_chart

我的cronjob图表如下:

apiVersion: batch/v1beta1 

kind: CronJob

metadata:

name: {{ .Chart.Name }}

spec:

schedule: "0 */2 * * *"

concurrencyPolicy: Forbid

jobTemplate:

spec:

template:

metadata:

...

spec:

containers:

...

spec:

resources:

{{ toYaml .Values.resources | indent 12 }}

错误disapierd当我改变了资源配置,以

resources: 

requests:

cpu: 300m

memory: 1024Mi

我不喜欢过去的变化,我想按照我的常规配置指南和存储值values.yaml

集群版本是

Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.4", GitCommit:"9befc2b8928a9426501d3bf62f72849d5cbcd5a3", GitTreeState:"clean", BuildDate:"2017-11-20T05:28:34Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

Server Version: version.Info{Major:"1", Minor:"8+", GitVersion:"v1.8.4-gke.0", GitCommit:"04502ae78d522a3d410de3710e1550cfb16dad4a", GitTreeState:"clean", BuildDate:"2017-11-27T19:19:56Z", GoVersion:"go1.8.3b4", Compiler:"gc", Platform:"linux/amd64"}

掌舵版本是:

Client: &version.Version{SemVer:"v2.7.0", GitCommit:"08c1144f5eb3e3b636d9775617287cc26e53dba4", GitTreeState:"clean"}

Server: &version.Version{SemVer:"v2.7.0", GitCommit:"08c1144f5eb3e3b636d9775617287cc26e53dba4", GitTreeState:"clean"}

预先感谢

回答:

TL; DR:由14位(而不是12)缩进,并删除在容器中定义的附加spec属性。


请注意您的YAML定义中的正确缩进。例如,containers属性需要是的cronjob的spec.jobTemplate.spec.template属性(的子属性与spec.jobTemplate是用于一个Job对象模板(或JobTemplate),并spec.jobTemplate.spec.template然后是用于该工作的Pod对象模板(或PodTemplate)。

此外,Pod's containers attribute不需要额外spec。看一看用于各个对象对这些对象类型的确切规格的API参考(上面链接)。

对于CronJob,这是头盔模板应该是什么样子的(同样,缩进很重要!)。此外,请注意,在这种情况下,.spec.jobTemplate.spec.template.spec.resources.requests属性需要缩进14个空格,而不是12。

apiVersion: batch/v1beta1 

kind: CronJob

metadata:

name: {{ .Chart.Name }}

spec:

schedule: "0 */2 * * *"

concurrencyPolicy: Forbid

jobTemplate:

spec:

template:

metadata:

# ...

spec:

containers:

- name: foo

# ...

resources:

{{ toYaml .Values.resources | indent 14 }}


关于您在收到此错误:随着12位(indent 12)的压痕,头盔会为你的工作类似于下面的一个YAML定义:

 spec: 

containers:

- name: foo

# ...

resources:

requests:

cpu: 300m

memory: 1024Mi

由于您可以看到,requests属性(打算属于resources属性的子属性)现在实际上是Container定义的属性。但是,Container资源没有名为requests的字段,导致出现错误消息:

Error: error validating "": error validating data: found `invalid field requests for v1.Container

以上是 k8s:创建CronJob图表时出错 的全部内容, 来源链接: utcz.com/qa/265487.html

回到顶部