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
Versionコマンドが既にエラーをスローしているということは、読み込まれるデフォルトのYAMLファイルがいくつかあることを示しています。
strace kubectl version
を使用して、開いたファイルを確認できます。うまくいけば、これはkubectl
がエラーをスローする直前に行われます。私はそれが読み取るいくつかのグローバル設定(または現在のディレクトリのデフォルトファイル)があると思います。
もちろん、そのようなエラーをキャッチせず、ファイルの名前を表示してからエラーを再発生させるのは、kubernetesのずさんなプログラミングです。
このようなエラーが発生するほとんどの場合(一般的で意味のある用語で言えば)は、次のいずれかが原因です。
1)。 yamlファイルの構文エラー(あなたの場合はそうではありません)。
2)。または、「値のマッピングはこのコンテキストでは許可されていません」というエラーのように。これは、yamlで使用したキー/値は構文的には正しいが、意味的には正しくない可能性があることを意味します。
kubectl version
を実行してもエラーが発生するため、kubeconfigファイルにyaml構文エラーがあると思います。デフォルトでは、~/.kube/config
にあります。
this one のようなyamlバリデーターを使用してコンテンツを検証できます。
ステップが完了していることを確認してください:
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ファイルの他の部分と一致していることを確認してください。