zaki work log

作業ログやら生活ログやらなんやら

[Kubernetes] K3sのバージョン指定インストール

K3sをインストールする際は、特に指定がない場合は「最新安定板」がインストールされますが、これはKubernetesの最新版の1個前だったりします。
このエントリ執筆時点(2024.02.08)のKubernetesのバージョンは1.29.1が最も新しいですが、K3sのインストールでは同じタイミングでリリースされた1.28系の最新版の1.28.6がインストールされます。

[zaki@fedora-dev3 ~]$ curl -sfL https://get.k3s.io | sh -
[INFO]  Finding release for channel stable
[INFO]  Using v1.28.6+k3s2 as release
[INFO]  Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.28.6+k3s2/sha256sum-amd64.txt
[INFO]  Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.28.6+k3s2/k3s
[INFO]  Verifying binary download

...

[zaki@fedora-dev3 ~]$ sudo kubectl get node
NAME          STATUS   ROLES                  AGE   VERSION
fedora-dev3   Ready    control-plane,master   26s   v1.28.6+k3s2

ここでは最新の1.29.1をインストールしたいとか、例えば運用で使っているバージョンと同じ構成を新規に作りたい場合などにバージョン指定でインストールしたい場合ついて簡単にまとめました。
バージョンの指定は環境変数で指定します。

docs.k3s.io

方法1:チャンネル指定

最新を使いたい場合はこれが楽。
環境変数 INSTALL_K3S_CHANNEL にはstable / latest / testingが指定可能です。
未指定の場合はデフォルトのstableになり最新安定板になります。
最新版(現時点での1.29.1)を使いたい場合はlatestを指定してインストールします。

[zaki@fedora-dev3 ~]$ curl -sfL https://get.k3s.io | INSTALL_K3S_CHANNEL=latest sh -
[INFO]  Finding release for channel latest
[INFO]  Using v1.29.1+k3s2 as release
[INFO]  Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.29.1+k3s2/sha256sum-amd64.txt
[INFO]  Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.29.1+k3s2/k3s
[INFO]  Verifying binary download

...

[zaki@fedora-dev3 ~]$ sudo kubectl get node
NAME          STATUS   ROLES                  AGE   VERSION
fedora-dev3   Ready    control-plane,master   37s   v1.29.1+k3s2

どのバージョンがインストールされるかはチャンネル一覧を見るのが早いかも。

方法2:バージョン指定

バージョンをピンポイントで指定する場合は環境変数 INSTALL_K3S_VERSION を使います。
例えばちょっと前のバージョンのv1.26.9を使いたい場合。(2023年9月リリース)

[zaki@fedora-dev3 ~]$ curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.26.9+k3s1  sh -
[INFO]  Using v1.26.9+k3s1 as release
[INFO]  Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.26.9+k3s1/sha256sum-amd64.txt
[INFO]  Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.26.9+k3s1/k3s
[INFO]  Verifying binary download

...

[zaki@fedora-dev3 ~]$ sudo kubectl get node
NAME          STATUS   ROLES                  AGE   VERSION
fedora-dev3   Ready    control-plane,master   15s   v1.26.9+k3s1

入れたいK3sのバージョンが分かってる場合にそれを指定するのに使用する環境変数ですが、KubernetesバージョンだけわかっててK3sのバージョン(末尾が+k3s1)が不明な場合は、GitHubのTags一覧から探せばよさそう。(ほかの探し方はわからなかった)

github.com