我有以下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
更新: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显示所需的“元数据”和“规范”元素位于定义的顶层。该
kubectl
命令很可能失败,因为它找不到定义 pod 规范的“spec”元素。您似乎正在测试图像拉取配置,并且您已指定只想
echo SUCCESS
在容器内运行。考虑到这两种情况,最好下拉bash
图像而不是mysql
图像。以下备用 YAML 应该可以满足您的需求:
对原始 YAML 文件进行了以下更改: 1)
kind
元素已更正为 valuePod
。2) pod 的名称已更改以适合 Kubernetes 要求(类似 DNS 的小写名称)。3)image
和name
元素已被修改以使用bash
图像。4) 命令定义已更改为使用command
andargs
键。请注意,YAML 使用空格而不是制表符进行缩进,YAML 的建议语法是每级缩进使用两个空格,而不是传统的四个空格。
有关更多示例 YAML 文件,请参阅GitHub 上的 Kubernetes 网站存储库。