はじめに
Kubernetesを日々運用していると、Manifestに正しくコンフィグを書いたつもりでも上手く反映されないなどのシーンがたまにあります。
こういう場合、実際に反映されている設定内容を確認する方法がいくつかあるのですが、その中で kubectl edit
コマンドは、中でエディタを起動して内容を変更して反映する機能がついています。
editのリスク
一見、この機能は便利に見えますが、本番環境でeditするのは極めて危険であり、宣言的なインフラ構成を守る、という意味でも変更を加えるときは極力 kubectl apply
を使うべきです。
editを閲覧のみで使いたい
editは、デフォルトではvi(vim)が起動するようになっていて、この状態では入力モードに遷移することが可能です。
そこで、viの閲覧モードである view
を使うことができれば「余計な変更を加えるリスク」を抱えることなくviの体験で設定を確認することができます。
やりかた
Kubectlのリファレンスでも示されている通り、 KUBE_EDITOR
という環境変数を使うと、デフォルトのエディタを変更することができます。
KUBE_EDITOR=view kubectl edit pod podname
ついでに、emacsなどの好みのエディタにすることもできるので、vi普段使わない人には便利かもしれません。
その他の方法
kubectl get pod podname -o yaml | vim -
これを使うと、そもそも出力内容がエディタに渡るだけなので編集する心配もなくてよさそう。@superbrotherさんに教えてもらいました。