事象
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
で解除できます。