LoginSignup
17
9

More than 3 years have passed since last update.

kubectl apply時のwarn調査

Last updated at Posted at 2019-07-23

気になった警告

kubectl apply時に


Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply

というWARNが出現することがあるので原因を調査。
なお設定ファイルの変更はできているので結果に影響はない。
WARNの意味は「kubectl applyコマンドは『kubectl create --save-config』または『kubectl apply』で作成されたリソースに対して実行しなさい」

結論

設定ファイルを「kubectl create」で作成していて、作成から初めて実行した「kubectl apply」だったため。

調査

kubectl applyの挙動

kubectl applyは、変更する設定ファイルに対し「過去(前回)」「現在」「未来(適用しようとしているもの)」の3つの設定の状態から差分を計算し、反映する。
「過去」の設定は「現在」の設定のannotationに保存されている。 
01.png

create → applyしたとき

「kubectl create」で設定ファイルを新規作成すると、annotationの無い設定が作成される。

kubectl create -f my-sevice-secret.yaml

この新規作成したファイルに変更を反映するため「kubectl apply」を実施する。

kubectl apply -f my-sevice-secret.yaml

するとannotationが無い=「過去」の探索ができず、「現在」と「未来」の2つの状態からしか差分を作れない。
ここで先のWARNが表示される。
02.png

WARNの意味

「kubectl create」に「--save-config」オプションをつけると、作成した「現在」の状態の設定をannotationに保存する。
よって、「kubectl apply」で変更を反映しようとしたときも「過去(実際は現在)」「現在」「未来」の3方向全てから差分を作成できる。

kubectl create -f my-sevice-secret.yaml --save-config


または、「kubectl apply」(edit, replaceなども)は自動的にannotationを保存するので、applyコマンドで新規に作成しても結果は同じになる。

kubectl apply -f my-sevice-secret.yaml

WARNは「kubectl applyコマンドは(過去・現在・未来3つともから差分を計算するために)『kubectl create --save-config』または『kubectl apply』で作成されたリソースに対して実行しなさい」という意味(だと思います)
03.png

回避方法

新規作成時に以下のどちらかで実行すること
もしオプションを付け忘れたcreateで作ってしまっても、warnが出るだけなので特に影響はないはず


# applyなら自動的にannotationが生成される
$ kubectl apply -f my-sevice-secret.yaml

# --save-configオプションでannotationに現在の設定を保存する
$ kubectl create -f my-sevice-secret.yaml --save-config

関連記事・参考

https://kubernetes-v1-4.github.io/docs/user-guide/kubectl/kubectl_create/
https://kubernetes.io/docs/concepts/cluster-administration/manage-deployment/#kubectl-apply

17
9
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
17
9