LoginSignup
5
0

More than 1 year has passed since last update.

kubectl 1.21でapplyしたらpanic発生

Last updated at Posted at 2021-04-19

いつもの通りアプリケーションを apply しようとしたら見たことのないエラーが発生した

$ kubectl apply -k ./

こんなエラーが出た

panic: runtime error: index out of range [9] with length 9 [recovered]
        panic: runtime error: index out of range [9] with length 9

goroutine 1 [running]:
k8s.io/kubernetes/vendor/gopkg.in/yaml%2ev3.handleErr(0xc0004e6d08)
/build/kubectl/parts/kubectl/go/src/github.com/kubernetes/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/gopkg.in/yaml.v3/yaml.go:276 +0x8d
panic(0x1d930a0, 0xc0034bd2c0)
/snap/go/7360/src/runtime/panic.go:965 +0x1b9
k8s.io/kubernetes/vendor/gopkg.in/yaml%2ev3.write(0xc0025ee380, 0xc003549e30, 0x9, 0x10, 0xc0004e4a80, 0xc0004e4a01)
/build/kubectl/parts/kubectl/go/src/github.com/kubernetes/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/gopkg.in/yaml.v3/emitterc.go:90 +0x245
k8s.io/kubernetes/vendor/gopkg.in/yaml%2ev3.yaml_emitter_write_comment(0xc0025ee380, 0xc003549e30, 0x9, 0x10, 0x18)

中略~

/kubernetes/vendor/github.com/spf13/cobra/command.go:958 +0x375
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).Execute(...)
/build/kubectl/parts/kubectl/go/src/github.com/kubernetes/kubernetes/_output/local/go/src/k8s.io/kubernetes/vendor/github.com/spf13/cobra/command.go:895
main.main()
_output/local/go/src/k8s.io/kubernetes/cmd/kubectl/kubectl.go:49 +0x21d

panic ??

僕がパニックです。

まずはバージョン確認

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.0",...

フムフム。
自分の記憶では、以前確認して覚えているのは「1.19」だったはず。。。

■公式ドキュメント
https://kubernetes.io/ja/docs/tasks/tools/install-kubectl/

$ mkdir ~/kubectl-1.19
$ cd ~/kubectl-1.19
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.19.0/bin/linux/amd64/kubectl

落としてきた場所のkubectlを指定して試してみる
バージョンで確認

$ ~/kubectl-1.19/kubectl  version
Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.0", ...

ディレクトリ移動して

$ ~/kubectl-1.19/kubectl apply -k ./

エラーなし。applyできた。

調べてみると、
kubectl 1.21.0 から built-in kustomize のバージョンが「4.0.5」になっていた。

原因は、manifestファイルのyamlのコメントアウト部分に「multi-byte(日本語)のコメント」が入っていると、panicを起こすという事らしい。

幸いなことに、複数の namespace で、同じコメントが多数散らばっていたので、VSCode の全文検索で英語に置き換えまくって、再度apply。

無事applyできるようになりました。

NAME                                       READY   STATUS      RESTARTS   AGE
zozo-monitor-cronjob-1618821900-zqckf      0/1     Completed   0          2m39s
zozo-monitor-cronjob-1618821960-d46t6      0/1     Completed   0          106s
zozo-monitor-cronjob-1618822020-gfw5h      0/1     Completed   0          42s
zozo-monitor-deployment-8547566c5c-hb8x9   2/2     Running     0          3m52s

学び

解りがよかろうと日本語で細かくコメントを書いていたことが災いした。
コメントも英語で書くことにします。

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0