Kubernetes k8s:创建作业图表时出错
我有一个关于Kubernetes k8s:创建作业图表时出错,kubernetes,kubernetes-helm,Kubernetes,Kubernetes Helm,我有一个关于CronJob图表中resources字段的helm验证的问题,欢迎任何帮助 我使用apiVersion batch/v1beta1 尝试从values.yaml检索值时出错 错误:error:error validating”“:error validating data:found`v1.Container的字段请求无效 我运行的命令:helm安装--干运行--调试我的图表 我的工作表如下: apiVersion: batch/v1beta1 kind: CronJob meta
CronJob
图表中resources
字段的helm验证的问题,欢迎任何帮助
我使用apiVersion batch/v1beta1
尝试从values.yaml检索值时出错
错误:error:error validating”“:error validating data:found`v1.Container的字段请求无效
我运行的命令:helm安装--干运行--调试我的图表
我的工作表如下:
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 }}
spec:
containers:
- name: foo
# ...
resources:
requests:
cpu: 300m
memory: 1024Mi
将资源配置更改为时出错
resources:
requests:
cpu: 300m
memory: 1024Mi
我不喜欢最后的更改,我希望按照我的常规配置指南,将值存储在values.yaml中
群集版本为
客户端版本:Version.Info{Major:“1”,Minor:“8”,GitVersion:“v1.8.4”,GitCommit:“9befc2b8928a9426501d3bf62f72849d5cbcd5a3”,gittrestate:“clean”,BuildDate:“2017-11-20T05:28:34Z”,政府版本:“go1.8.3”,编译器:“gc”,平台:“linux/amd64”}
服务器版本:Version.Info{Major:“1”,Minor:“8+”,GitVersion:“v1.8.4-gke.0”,GitCommit:“04502ae78d522a3d410de3710e1550cfb16dad4a”,GitRestate:“clean”,BuildDate:“2017-11-27T19:19:56Z”,政府版本:“go1.8.3b4”,编译器:“gc”,平台:“linux/amd64”}
头盔版本包括:
Client:&version.version{SemVer:“v2.7.0”,GitCommit:“08c1144f5eb3e3b636d9775617287cc26e53dba4”,gittrestate:“clean”}
Server:&version.version{SemVer:“v2.7.0”,GitCommit:“08c1144f5eb3e3b636d9775617287cc26e53dba4”,gittrestate:“clean”}
提前感谢TL;DR:缩进14个空格(而不是12个空格),并删除容器定义中的附加
spec
属性
注意YAML定义中的正确缩进。例如,
containers
属性需要是CronJob的spec.jobTemplate.spec.template
属性的子属性(其中spec.jobTemplate
是对象(或a)的模板,spec.jobTemplate.spec.template
然后是该作业的对象(或a)的模板)
此外,不需要额外的规范
。请查看相应对象的API参考(如上链接),以了解这些对象类型的确切规范
对于CronJob,这就是Helm模板的外观(同样,缩进很重要!)。此外,请注意,在这种情况下,.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
),Helm将为您的作业创建类似以下内容的YAML定义:
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 }}
spec:
containers:
- name: foo
# ...
resources:
requests:
cpu: 300m
memory: 1024Mi
如您所见,requests
属性(打算作为resources
属性的子属性)现在实际上是定义的属性。但是,容器资源没有名为requests
的字段,导致错误消息:
错误:验证“”时出错:验证数据时出错:找到“v1.Container的无效字段请求”
TL;DR:缩进14个空格(而不是12个空格),并删除容器定义中附加的
spec
属性
注意YAML定义中的正确缩进。例如,
containers
属性需要是CronJob的spec.jobTemplate.spec.template
属性的子属性(其中spec.jobTemplate
是对象(或对象)的模板),和spec.jobTemplate.spec.template
,然后成为该作业对象(或a)的模板
此外,不需要额外的规范
。请查看相应对象的API参考(如上链接),以了解这些对象类型的确切规范
对于CronJob,这就是Helm模板的外观(同样,缩进很重要!)。此外,请注意,在这种情况下,.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
),Helm将为您的作业创建类似以下内容的YAML定义:
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 }}
spec:
containers:
- name: foo
# ...
resources:
requests:
cpu: 300m
memory: 1024Mi
如您所见,requests
属性(打算作为resources
属性的子属性)现在实际上是定义的属性。但是,容器资源没有名为requests
的字段,导致错误消息:
错误:验证“”时出错:验证数据时出错:找到“v1.Container的无效字段请求”