web-dev-qa-db-ja.com

Kubectlは常にエラーを返します:yaml:マッピング値はこのコンテキストでは許可されていません

Kubectlコマンドは常にこのエラーyamlを返します。2行目:このコンテキストではマッピング値は許可されていません。通常のバージョンのコマンド、configコマンドなどを呼び出しても、何が原因なのかわかりません。

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

私が使用した唯一のyamlファイルは

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

kubectlで何を試しても、このエラーが返されます。これを解決するにはどうすればよいですか?

> 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

の出力:

strace kubectl version

is here

11
StarLord

Versionコマンドが既にエラーをスローしているということは、読み込まれるデフォルトのYAMLファイルがいくつかあることを示しています。

strace kubectl versionを使用して、開いたファイルを確認できます。うまくいけば、これはkubectlがエラーをスローする直前に行われます。私はそれが読み取るいくつかのグローバル設定(または現在のディレクトリのデフォルトファイル)があると思います。

もちろん、そのようなエラーをキャッチせず、ファイルの名前を表示してからエラーを再発生させるのは、kubernetesのずさんなプログラミングです。

9
Anthon

このようなエラーが発生するほとんどの場合(一般的で意味のある用語で言えば)は、次のいずれかが原因です。

1)。 yamlファイルの構文エラー(あなたの場合はそうではありません)。

2)。または、「値のマッピングはこのコンテキストでは許可されていません」というエラーのように。これは、yamlで使用したキー/値は構文的には正しいが、意味的には正しくない可能性があることを意味します。

5
Suhas Chikkanna

kubectl versionを実行してもエラーが発生するため、kubeconfigファイルにyaml構文エラーがあると思います。デフォルトでは、~/.kube/configにあります。

this one のようなyamlバリデーターを使用してコンテンツを検証できます。

3
SeMeKh

ステップが完了していることを確認してください:

 mkdir -p $ HOME/.kube 
 Sudo cp -i /etc/kubernetes/admin.conf $ HOME/.kube/config 
 Sudo chown $(id -u) :$(id -g)$ HOME/.kube/config 

Rootユーザーとしてもです。

からのバージョンも確認できませんでした

kubectlのバージョン

追加するだけです...私のYAMLファイルにコピー/貼り付け操作を実行した後、今日このエラーを見ました。プロセスは、kubectlが解読できないいくつかの空白文字をもたらしました。

不明な場合は、まずYAMLをテキストエディタに貼り付けて、すべての非表示の文字を表示し、それらがYAMLファイルの他の部分と一致していることを確認してください。

0
JDTLH9