手動アップグレード
K3sをアップグレードするには、インストールスクリプトを使用するか、希望するバージョンのバイナリを手動でインストールすることができます。
アップグレードする際は、まずサーバーノードを1つずつアップグレードし、その後にエージェントノードをアップグレードしてください。
リリースチャンネル
インストールスクリプトを使用したアップグレードや、自動アップグレード機能を使用したアップグレードは、異なるリリースチャンネルに結びつけることができます。以下のチャンネルが利用可能です:
チャンネル | 説明 |
---|---|
stable | (デフォルト) Stableは本番環境に推奨されます。これらのリリースはコミュニティによるハードニング期間を経ています。 |
latest | Latestは最新の機能を試すのに推奨されます。これらのリリースはまだコミュニティによるハードニング期間を経ていません。 |
v1.26 (例) | 各Kubernetesのマイナーバージョンに結びついたリリースチャンネルがあり、サポート終了バージョンも含まれます。これらのチャンネルは最新のパッチを選択しますが、必ずしも安定版リリースではありません。 |
チャンネルの包括的かつ最新のリストについては、k3sチャンネルサービスAPIを参照してください。チャンネルの動作に関する技術的な詳細については、channelserverプロジェクトを参照してください。
K3sの新しいバージョンにアップグレードする際には、Kubernetesバージョンスキューポリシーが適用されます。アップグレード時に中間のマイナーバージョンをスキップしないように計画を立ててください。system-upgrade-controller自体は、Kubernetesバージョンのサポートされていない変更を防ぐことはありません。
インストールスクリプトを使用してK3sをアップグレードする
古いバージョンのK3sをアップグレードするには、インストールスクリプトを再実行し、最初にインストールスクリプトを実行したときと同じ構成オプションを使用します。
INSTALL_K3S_EXEC
変数、K3S_
変数、および末尾のシェル引数はすべて、インストールスクリプトによってsystemdユニットおよび環境ファイルを生成するために使用されます。
最初にインストールスクリプトを実行したときに設定を行った場合でも、再実行時に再設定しないと、元の値は失われます。
構成ファイルの内容はインストールスクリプトによって管理されません。 インストー ルスクリプトから独立した構成を希望する場合は、環境変数や引数をインストールスクリプトに渡すのではなく、構成ファイルを使用するべきです。
インストールスクリプトを実行すると、以下のことが行われます:
- 新しいk3sバイナリをダウンロード
- インストールスクリプトに渡された引数を反映するようにsystemdユニットまたはopenrc initスクリプトを更新
- 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バイナリをダウンロードし、既存のバイナリを新しいものに置き換えます。
- リリースから希望するバージョンのK3sバイ ナリをダウンロード
- ダウンロードしたバイナリを
/usr/local/bin/k3s
(または希望する場所)にコピー - 古いk3sバイナリを停止
- 新しいk3sバイナリを起動