CentOSの後継として開発されているAlmaLinuxの安定板がリリースされたので、Kubernetesの最新版をインストールしてみた話し。

CentOSの終焉

2020年12月8日にCentOSの公式ブログでCentOSがCentOS Streamにシフトするというアナウンスがあった。

CentOS StreamはRHELの開発版みたいなもので、メジャーバージョンしかなく(i.e. マイナーバージョンが無い)、リポジトリのYUMパッケージが随時最新版に置き換わっていくので、追随していけば最新の機能や修正を取り入れていけるという感じのもの。 逆に言えば固定的なバージョンが無いので、特定のバージョンをがっつり評価して導入みたいなことはできない。

ある時点のCentOS StreamからRHELの新バージョンがリリースされる。 つまり、リリースされたRHELをもとに開発されていた従来のCentOSとは逆。

これまでRHELの代わりにCentOSを使っていたユーザは、基本的にはお金払ってRHELに移行してねというのがRed Hatの意向。 実際、随時リポジトリのパッケージが入れ替わっていくCentOS Streamは、開発機くらいにしか使えない気がする。

AlmaLinux

CentOS終焉のアナウンスを受けて、従来のCentOSの後継として名乗りをあげたのがAlmaLinux。 従来のCentOS同様、リリースされたRHELをもとに開発されるOSSのRHELクローン。

プロダクションレディで、RHELとバイナリ互換があって、固定的なバージョンがある。 2029年までのサポートがコミットされている。 完璧。

これの初バージョンであるAlmaLinux 8.3が2021年3月30日にリリースされたので、触りがてらKubernetesをインストールしてみる。

因みに、同様にCentOSの後継としてRocky Linuxというのも立ち上がったけど、まだビジョンを語っている程度でちょっと出遅れた感じ。

AlmaLinuxのインストール

AlmaLinuxのインストールメディアイメージは公式サイト上部のDownload ISOsから取得できる。

VMware Playerで作ったメモリ4GB、CPU2コアのVMにダウンロードしたAlmaLinux-8.3-x86_64-dvd.isoを付けて起動したら、CentOSと全く同じ感じのインストール画面が出た。 Minimalでインストールした。

なんの問題もなくさっくり完了。

Kubernetesクラスタ構築

インストールしたAlmaLinux 8.3にシングルノード(マスタコンポとノードコンポ同居)のKubernetseクラスタを構築する。

構築に使うのは、いろいろカスタマイズするために自作したAnsibleプレイブックのansible-k8s以前CentOS 8にKubernetes 1.16をいれたことがあるので、その手順をなぞる。 今回入れるのはKubernetes 1.20.5。

すっと行くかと思ったら途中でModule nf_conntrack_ipv4 not found in directory /lib/modules/4.18.0-240.el8.x86_64というエラーがでた。 どうもRHEL 8.3でnf_conntrack_ipv4はnf_conntrackにマージされた消え去ったらしいので、ansible-k8sのextra_vars.ymlに以下を追記してnf_conntrackをロードするようにする。

k8s_node__kernel_modules_to_load_for_ipvs:
- ip_vs
- ip_vs_rr
- ip_vs_wrr
- ip_vs_sh
- nf_conntrack

再度トライしたらインストール成功した。

[root@k8s-master ~]# cat /etc/almalinux-release
AlmaLinux release 8.3 (Purple Manul)
[root@k8s-master ~]# kubectl get node
NAME               STATUS   ROLES    AGE    VERSION
k8s-master.local   Ready    <none>   2d4h   v1.20.5