(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Kubernetes】found a tab caharacter that violates indentationというYAMLのエラー

スポンサーリンク

事象

YAMLファイルの適用に以下エラーで失敗する。

$ kubectl apply -f busybox.yaml
error: error parsing busybox.yaml: error conberting YAML to JSON: yaml: line 22; found a  tab caharacter that violates indentation
環境情報

原因/対応策

列を揃えていたつもりだが

    -image: busybox
      imagePullPolicy: Never

viでset listを行えば以下のように制御文字が確認でき

    -image: busybox$
^IimagePullPolicy: Never$

インデントで行を合わせている。

よってインデントを削除しスペースで詰めれば

# kubectl apply -f busybox.yaml
deployment.apps/busybox-dep created

正常に起動できる。

以下、補足です。

補足

イントラネットでKubernetesを動かすと以下のようなエラーとなります。

Failed to pull image "busybox" : rpc error : code...

以下記事に記載の通りでIfNotPresentにするか今回のようにNeverにする必要があります。

以下がkubectl explain pod.spec.containersの結果の抜粋です。

imagePullPolicy
Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always
if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated.

YAMLファイルに追記する際、列合わせにタブを使うと冒頭のエラーになるのでviで編集する場合はset list状態で制御キーを見える化しておくのをおススメします。不要にばればset nolistで解除できます。