手動アップグレード

K3sをアップグレードするには、インストールスクリプトを使用するか、希望するバージョンのバイナリを手動でインストールすることができます。

アップグレードする際は、まずサーバーノードを1つずつアップグレードし、その後にエージェントノードをアップグレードしてください。

リリースチャンネル

インストールスクリプトを使用したアップグレードや、自動アップグレード機能を使用したアップグレードは、異なるリリースチャンネルに結びつけることができます。以下のチャンネルが利用可能です:

チャンネル 説明

stable

(デフォルト) Stableは本番環境に推奨されます。これらのリリースはコミュニティによるハードニング期間を経ています。

latest

Latestは最新の機能を試すのに推奨されます。これらのリリースはまだコミュニティによるハードニング期間を経ていません。

v1.26 (例)

各Kubernetesのマイナーバージョンに結びついたリリースチャンネルがあり、サポート終了バージョンも含まれます。これらのチャンネルは最新のパッチを選択しますが、必ずしも安定版リリースではありません。

チャンネルの包括的かつ最新のリストについては、https://update.k3s.io/v1-release/channels[k3sチャンネルサービスAPI]を参照してください。チャンネルの動作に関する技術的な詳細については、https://github.com/rancher/channelserver[channelserverプロジェクト]を参照してください。

K3sの新しいバージョンにアップグレードする際には、https://kubernetes.io/docs/setup/release/version-skew-policy/[Kubernetesバージョンスキューポリシー]が適用されます。アップグレード時に中間のマイナーバージョンをスキップしないように計画を立ててください。system-upgrade-controller自体は、Kubernetesバージョンのサポートされていない変更を防ぐことはありません。

インストールスクリプトを使用してK3sをアップグレードする

古いバージョンのK3sをアップグレードするには、インストールスクリプトを再実行し、最初にインストールスクリプトを実行したときと同じ構成オプションを使用します。

Note

INSTALL_K3S_EXEC変数、K3S_変数、および末尾のシェル引数はすべて、インストールスクリプトによってsystemdユニットおよび環境ファイルを生成するために使用されます。 最初にインストールスクリプトを実行したときに設定を行った場合でも、再実行時に再設定しないと、元の値は失われます。

構成ファイルの内容はインストールスクリプトによって管理されません。 インストールスクリプトから独立した構成を希望する場合は、環境変数や引数をインストールスクリプトに渡すのではなく、構成ファイルを使用するべきです。

インストールスクリプトを実行すると、以下のことが行われます:

  1. 新しいk3sバイナリをダウンロード

  2. インストールスクリプトに渡された引数を反映するようにsystemdユニットまたはopenrc initスクリプトを更新

  3. k3sサービスを再起動

Containers for Pods continue running even when K3s is stopped. The install script does not drain or cordon the node before restarting K3s. If your workload is sensitive to brief API server outages, you should manually drain and cordon the node using kubectl before re-running the install script to upgrade K3s or modify the configuration, and uncordon it afterwards.

例えば、現在の安定版リリースにアップグレードするには:

curl -sfL https://get.k3s.io | <EXISTING_K3S_ENV> sh -s - <EXISTING_K3S_ARGS>

特定のチャンネル(例えばlatest)の新しいバージョンにアップグレードしたい場合は、チャンネルを指定できます:

curl -sfL https://get.k3s.io | INSTALL_K3S_CHANNEL=latest <EXISTING_K3S_ENV> sh -s - <EXISTING_K3S_ARGS>

特定のバージョンにアップグレードしたい場合は、以下のコマンドを実行できます:

curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=vX.Y.Z+k3s1 <EXISTING_K3S_ENV> sh -s - <EXISTING_K3S_ARGS>

新しいバージョンのk3sをダウンロードするだけで起動しない場合は、INSTALL_K3S_SKIP_START=true環境変数を使用できます。

バイナリを使用してK3sをアップグレードする

K3sを手動でアップグレードするには、希望するバージョンのK3sバイナリをダウンロードし、既存のバイナリを新しいものに置き換えます。

  1. リリースから希望するバージョンのK3sバイナリをダウンロード

  2. ダウンロードしたバイナリを/usr/local/bin/k3s(または希望する場所)にコピー

  3. Restart the k3s or k3s-agent service or restart the k3s process (binary)

Containers for Pods continue running even when K3s is stopped. It is generally safe to restart K3s without draining pods and cordoning the node. If your workload is sensitive to brief API server outages, you should manually drain and cordon the node using kubectl before restarting K3s, and uncordon it afterwards.