Tenho o seguinte yaml
arquivo:
---
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
Após executar kubectl create -f my_yaml.yaml
, recebo o seguinte erro:
error: error converting YAML to JSON: yaml: line 10: did not find expected key
UPDATE : Com yamllint
eu recebo o seguinte erro:
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>'
Onde está o meu problema e como posso resolvê-lo?
O exemplo de pod simples YAML para Kubernetes mostra que os elementos 'metadados' e 'especificação' necessários estão no nível superior da definição. O
kubectl
comando provavelmente está falhando porque não consegue encontrar o elemento 'spec', que define a especificação do pod.Parece que você está testando a configuração de pull da imagem e especificou que simplesmente deseja executar
echo SUCCESS
dentro do contêiner. Considerando ambas as condições, seria preferível puxar para baixo abash
imagem em vez damysql
imagem.O seguinte YAML alternativo deve funcionar para suas necessidades:
As seguintes alterações foram feitas do arquivo YAML original: 1) O
kind
elemento foi corrigido para o valorPod
. 2) O nome do pod foi alterado para atender aos requisitos do Kubernetes (nome semelhante ao DNS em minúsculas). 3) Os elementosimage
ename
foram modificados para usar abash
imagem. 4) A definição do comando foi alterada para usar as teclascommand
e em vez disso.args
Observe que YAML usa espaços em vez de tabulações para recuo, e a sintaxe sugerida para YAML é usar dois espaços por nível de recuo em vez dos tradicionais quatro espaços.
Para obter mais exemplos de arquivos YAML, consulte o repositório do site Kubernetes no GitHub .