我有以下yaml
文件:
---
apiVersion: v1
kind: pod
metadata:
name: Tesing_for_Image_pull -----------> 1
spec:
containers:
- name: mysql ------------------------> 2
image: mysql ----------> 3
imagePullPolicy: Always ------------->4
command: ["echo", "SUCCESS"] -------------------> 5
运行后kubectl create -f my_yaml.yaml
,出现以下错误:
error: error converting YAML to JSON: yaml: line 10: did not find expected key
UPDATE:随着yamllint
我得到以下错误:
root@debian:~# yamllint my_yaml.yaml
my_yaml.yaml
8:9 error wrong indentation: expected 12 but found 8 (indentation)
11:41 error syntax error: expected <block end>, but found '<scalar>'
我的问题在哪里,我该如何解决?
用于Kubernetes的简单pod示例YAML显示,所需的“元数据”和“ spec”元素位于定义的顶层。该kubectl
命令很可能失败,因为它找不到定义吊舱规范的'spec'元素。
您似乎正在测试映像提取配置,并且已指定仅echo SUCCESS
在容器内运行。考虑到这两个条件,最好拉下bash
图像而不是mysql
图像。
以下替代YAML应该可以满足您的需求:
---
apiVersion: v1
kind: Pod
metadata:
name: testing-for-image-pull
spec:
containers:
- name: bash
image: bash
imagePullPolicy: Always
command: ["echo"]
args: ["SUCCESS"]
对原始YAML文件进行了以下更改:1)kind
元素已更正为value Pod
。2)Pod的名称已更改为适合Kubernetes的要求(小写的类似DNS的名称)。3)image
和name
元素已被修改以使用该bash
图像。4)命令定义已更改为使用command
和args
键。
请注意,YAML使用空格而不是制表符进行缩进,并且针对YAML的建议语法是,每个缩进级别使用两个空格,而不是传统的四个空格。
有关更多示例YAML文件,请参考GitHub上的Kubernetes网站存储库。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句