Kubernetes v1.22 から kubeadm.k8s.io/v1beta3
が利用可能になっていたのを、年末に実家のクラスターをいじいじしてたときに気づきました。kubelet.config.k8s.io/v1beta1
と kubeproxy.config.k8s.io/v1alpha1
は据え置きですが、InitConfiguration
、ClusterConfiguration
、JoinConfiguration
がそれぞれv1beta3 で使えるようになっています。
kubeadm でクラスターをセットアップする場合、kubeadm init --オプション
という形で設定値の引数を渡すこともできるのですが、できるだけ --config
の中で渡したほうが引数の管理がしやすく、deprecated になったときに対応策を考えやすくなります。
v1beta3
では HyperKube のイメージを渡すオプションが削除されるなど、破壊的変更は比較的少なめのアップデートです。そのため kubeadm 1.22 以降 + v1beta2 を使っていれば比較的速やかに移行ができると思います。
kubeadm config をコード化することで各コンポーネントの引数を固定化してクラスターが建てられるというメリットがありますが、プロバイダーさえ許すのであれば ClusterAPI を使ったほうが便利かもしれません。オンプレで利用する場合は Ansible + kubeadm というのも強力ですが、証明書まわりをどうするかは工夫がいるところです。