inductor's blog

nothing but self note :)

kubeadm コンフィグの新しいAPIバージョン kubeadm.k8s.io/v1beta3 が出てた

Kubernetes v1.22 から kubeadm.k8s.io/v1beta3 が利用可能になっていたのを、年末に実家のクラスターをいじいじしてたときに気づきました。kubelet.config.k8s.io/v1beta1kubeproxy.config.k8s.io/v1alpha1 は据え置きですが、InitConfigurationClusterConfigurationJoinConfiguration がそれぞれv1beta3 で使えるようになっています。

kubernetes.io

kubeadm でクラスターをセットアップする場合、kubeadm init --オプション という形で設定値の引数を渡すこともできるのですが、できるだけ --config の中で渡したほうが引数の管理がしやすく、deprecated になったときに対応策を考えやすくなります。

v1beta3 では HyperKube のイメージを渡すオプションが削除されるなど、破壊的変更は比較的少なめのアップデートです。そのため kubeadm 1.22 以降 + v1beta2 を使っていれば比較的速やかに移行ができると思います。

kubeadm config をコード化することで各コンポーネントの引数を固定化してクラスターが建てられるというメリットがありますが、プロバイダーさえ許すのであれば ClusterAPI を使ったほうが便利かもしれません。オンプレで利用する場合は Ansible + kubeadm というのも強力ですが、証明書まわりをどうするかは工夫がいるところです。