web-dev-qa-db-fra.com

Kubectl renvoie toujours une erreur: yaml: les valeurs de mappage ne sont pas autorisées dans ce contexte.

La commande Kubectl renvoie toujours cette erreur yaml: ligne 2: les valeurs de mappage ne sont pas autorisées dans ce contexte. Même quand j'appelle la commande de version normale, la commande de configuration, etc.

tessact@tessact-sys-1:~$ kubectl version
Client Version: version.Info{Major:"1", Minor:"4",
GitVersion:"v1.4.4",
GitCommit:"3b417cc4ccd1b8f38ff9ec96bb50a81ca0ea9d56",
GitTreeState:"clean", BuildDate:"2016-10-21T02:48:38Z",
GoVersion:"go1.6.3", Compiler:"gc", Platform:"linux/AMD64"}
error: yaml: line 2: mapping values are not allowed in this context


tessact@tessact-sys-1:~/[some path]$ kubectl create -f kubernetes_configs/frontend.yaml
error: yaml: line 2: mapping values are not allowed in this context

Le seul fichier yaml que j'ai utilisé est 

apiVersion: v1
kind: ReplicationController
metadata:
  name: frontend
  labels:
    name: frontend
spec:
  replicas: 3
  template:
    metadata:
      labels:
        name: frontend
    spec:
      containers:
      - name: trigger
        # Replace  with your project ID or use `make template`
        image: asia.gcr.io/trigger-backend/trigger-backend

        # This setting makes nodes pull the docker image every time before
        # starting the pod. This is useful when debugging, but should be turned
        # off in production.
        imagePullPolicy: Always
        ports:
        - containerPort: 8080


apiVersion: v1
kind: Service
metadata:
  name: frontend
  labels:
    name: frontend
spec:
  type: LoadBalancer
  ports:
  - port: 80
    targetPort: 8080
  selector:
    name: frontend

Quoi que j'essaye avec kubectl , cette erreur est retournée. Que dois-je faire pour résoudre ce problème?

> tessact@tessact-sys-1:~/developer/trigger-backend-dev/trigger-backend$
> kubectl get service error: yaml: line 2: mapping values are not
> allowed in this context

Sortie de:

strace kubectl version

est ici

5
StarLord

Le fait que la commande de version génère déjà une erreur indique qu’un fichier YAML par défaut est chargé.

Vous pouvez utiliser strace kubectl version pour voir quel fichier a été ouvert. Espérons que cela se fasse juste avant que kubectl lève l'erreur. Je suppose qu'il y a une configuration globale qu'il lit (ou un fichier par défaut dans votre répertoire actuel).

Il est bien sûr que la programmation bâclée dans kubernetes ne permet pas d’attraper une telle erreur, d’afficher le nom du fichier, puis de la relancer.

6
Anthon

Puisque vous obtenez l'erreur même après avoir exécuté kubectl version, je dirais que vous avez une erreur de syntaxe yaml dans votre fichier kubeconfig, situé à ~/.kube/config par défaut.

Vous pouvez valider son contenu en utilisant un validateur yaml tel que celui-ci .

2
SeMeKh

La plupart du temps, quand vous obtenez une erreur comme celle-ci (en termes généraux et significatifs), c'est soit à cause de: -

1). Une erreur de syntaxe (dans votre cas, ce n'est pas le cas) dans le fichier yaml.

2) Ou comme l’erreur dit "les valeurs de mappage ne sont pas autorisées dans ce contexte". Cela signifie que les clés/valeurs que vous avez utilisées dans yaml peuvent être syntaxiquement correctes mais pas sémantiques.

2
Suhas Chikkanna