kubeadmで構築した環境のkube-apiserverを再起動する

kube-apiserverを設定変更して再起動したくなったのだけど、 kubeadmでデプロイした場合どうするのか知らなかったので調べた結果をメモ。

まあ、全く同じ質問がstack overflowにあったので、それを読めば良いです。

まとめると下記。

  • kubeadmはkube-apiserverをstatic Podとしてデプロイする
  • static Podとは
    • kubeletが直接管理しているPodで、Podがcrashとかするとkubeletが勝手に再起動したりしてくれる
    • apiサーバからは"mirror pod"が見えるけど、apiサーバ経由で操作することは不可能
  • そのため、kube-apiserverを再起動したい場合、kube-apiserverが動いているホストに ログインしてdockerコマンドでコンテナを止める
  • するとkubeletが再起動してくれる

ちなみに、kube-apiserverのmanifestはcentosの場合、/etc/kubernetes/manifestsにあるので、設定を変更する場合はこれを修正する。 (ちゃんと確認していないけど、設定変更したらkubeletがそれを検知してくれてコンテナ再起動するかも --> 今度調べる)

参考