メインコンテンツまでスキップ

手動アップグレード

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

注記

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

リリースチャンネル

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

チャンネル説明
stable(デフォルト) Stableは本番環境に推奨されます。これらのリリースはコミュニティによるハードニング期間を経ています。
latestLatestは最新の機能を試すのに推奨されます。これらのリリースはまだコミュニティによるハードニング期間を経ていません。
v1.26 (例)各Kubernetesのマイナーバージョンに結びついたリリースチャンネルがあり、サポート終了バージョンも含まれます。これらのチャンネルは最新のパッチを選択しますが、必ずしも安定版リリースではありません。

チャンネルの包括的かつ最新のリストについては、k3sチャンネルサービスAPIを参照してください。チャンネルの動作に関する技術的な詳細については、channelserverプロジェクトを参照してください。

ヒント

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

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

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

Note

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

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

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

  1. 新しいk3sバイナリをダウンロード
  2. インストールスクリプトに渡された引数を反映するようにsystemdユニットまたはopenrc initスクリプトを更新
  3. k3sサービスを再起動

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

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. 古いk3sバイナリを停止
  4. 新しいk3sバイナリを起動