インストール - Rancher Desktop
概要
Rancher Desktopは、デスクトップ上でコンテナ管理、Kubernetesを提供するソフトウェアである。
Mac(Intel、Apple Siliconの両方)、Windows、Linuxで利用できる。
コンテナ管理において、Rancher Desktopでは、コンテナイメージをビルド、プッシュ、プルする機能と、コンテナを実行する機能が提供されている。
これは、Docker CLI(エンジンにMoby / dockerdを選択した場合)またはnerdctl(エンジンにcontainerdを選択した場合)の両方で提供される。
nerdctlは、containerdプロジェクトが提供するdocker-compatible CLI for containerdである。
Kubernetesにおいて、Rancher Desktopには、Kubernetesが組み込まれている。
Kubernetesは、軽量ディストリビューションであるk3sによって提供されている。
Rancher Desktopでは、Kubernetesのバージョンを選択して、Kubernetesをリセットしたり、Kubernetesとコンテナランタイム全体をボタン1つでリセットする機能等がある。
RancherとRancher Desktopは、Rancherという名前を共有しているが、それぞれ異なる動作を行う。
Rancherは、Kubernetesクラスタを管理するための強力なソリューションであり、Rancher Desktopは、ローカルのKubernetesとコンテナ管理プラットフォームを提供する。
この2つのソフトウェアは、互いに補完し合っている。
ローカルシステムでRancherを実行する場合は、Rancher DesktopにRancherをインストールすることができる。
Rancher Desktopの詳細を知りたい場合は、Rancher Desktopの公式ドキュメントを参照すること。
Rancher Desktopの動作に必要な条件
Rancher Desktopの動作に必要な条件を、以下に示す。
- DEBパッケージ、RPMパッケージ、AppImageのいずれかをインストールできる環境
- 持続的なインターネット接続
- AMD-VまたはVT-xを搭載したx86_64プロセッサ
- /dev/kvmへの読み書きアクセス
- 8[GB]以上のRAM
- 4CPUs
実行するワークロードによっては、追加のリソースが必要になる場合がある。
GNOMEではシステムトレイをサポートしていないため、Rancher Desktopのトレイアイコンは表示されないことに注意する。
Rancher Desktopのインストール
Rancher DesktopのGithubにアクセスして、Rancher Desktopをダウンロードする。
ダウンロードしたファイルを解凍する。
unzip rancher-desktop-<バージョン>.zip
解凍したファイルを任意のディレクトリに配置する。
Rancher Desktopのデスクトップエントリファイルを作成する。
vi ~/.local/share/applications/Ranchar_Desktop.desktop
# ~/.local/share/applications/Ranchar_Desktop.desktopファイル
[Desktop Entry]
Type=Application
Name=Ranchar Desktop
GenericName=Ranchar Desktop
Comment=Kubernetes and Docker Management
Exec=/<Rancher Desktopのインストールディレクトリ>/rancher-desktop %F
Icon=/<Rancher Desktopのインストールディレクトリ>/ranchar-desktop.png
StartupNotify=false
StartupWMClass=Rancher
Categories=Development;
MimeType=;
Keywords=rancher;kubernetes;docker;
Rancher Desktopを起動すると、~/.bashrcファイル、~/.tcshrcファイル、~/.zshrcファイルの最下行に、以下に示す設定が追記される。
### MANAGED BY RANCHER DESKTOP START (DO NOT EDIT)
export PATH="/home/<ユーザ名>/.rd/bin:$PATH"
### MANAGED BY RANCHER DESKTOP END (DO NOT EDIT)
/dev/kvmへのアクセス権を設定する。
一部の環境では、Rancher Desktopに必要な/dev/kvmを使用するための十分な権限がない。
まず、必要な権限があるかどうかを確認する。
[ -r /dev/kvm ] && [ -w /dev/kvm ] || echo 'insufficient privileges'
十分な権限が出力されない場合は、ユーザをkvmグループに追加する必要がある。
sudo usermod -a -G kvm "$USER"
設定を反映させるため、PCを再起動または再ログインする。
Rancher Desktopのアンインストール
まず、Rancher Desktopのインストールディレクトリを削除する。
rm -r <Rancher Desktopのインストールディレクトリ>
次に、Rancher Desktopの設定ファイルおよびディレクトリを削除する。
rm -r ~/.config/"Rancher Desktop" rm -r ~/.local/share/rancher-desktop rm -r ~/.rd rm -r .tcshrc rm -r ~/.local/share/applications/Ranchar_Desktop.desktop
~/.bashrcファイル、~/.tcshrcファイル、~/.zshrcファイルの最下行にある、以下に示す設定を削除する。
### MANAGED BY RANCHER DESKTOP START (DO NOT EDIT)
export PATH="/home/<ユーザ名>/.rd/bin:$PATH"
### MANAGED BY RANCHER DESKTOP END (DO NOT EDIT)
Rancher Desktopの設定
pass
docker login
コマンド、nerdctl login
コマンドを使用しない場合は、passの設定は不要である。
デフォルトでは、Rancher Desktopは、passを使用してdocker login
コマンドとnerdctl login
コマンド経由で渡された認証情報を安全に保存する。
まず、passをインストールする。
# RHEL sudo dnf install pass # SUSE sudo zypper install password-store
Rancher Desktopをインストールした後、GPGキーを作成する。
これはpassが秘密を保護するために使用する。
gpg --generate-key # 出力例 8D818FB37A9279E341F01506ED96AD27A40C9C73
上記の出力例が、ユーザのキーIDである。
このキーIDを渡すことで、passを初期化することができる。
pass init <キーID>
passの詳細を知りたい場合は、passの公式Webサイトを参照すること。
Kubernetesの有効 / 無効
このオプションでは、Kubernetesの有効または無効にすることができる。
Kubernetesを無効にすることにより、containerdやdockerdだけを単体で動作させて、リソースの消費を抑えることができる。
初期設定では、Kubernetesは有効化されている。
Kubernetesの有効 / 無効を切り替える場合、[Enable Kubernetes]チェックボックスをオン / オフする。
有効 / 無効に切り替えると、Rancher Desktopは自動的に再起動される。
Kubernetesを無効にしても既存のリソースは削除されずに、Kubernetesを有効に戻すと再び利用可能になる。
Traefikを有効にする
このオプションでは、Traefikを有効または無効にすることができる。
Traefikを無効にすることにより、80番ポートと443番ポートを別のイングレス設定用に解放することができる。
初期設定では、Traefikは有効化されている。
Traefikを有効 / 無効に切り替える場合、[Enable Traefik]チェックボックスをオン / オフする。
有効 / 無効に切り替えると、Rancher Desktopを手動で再起動する必要がある。
この動作は今後のリリースで変更される予定である。(プロンプトが表示されて、Rancher Desktopが自動的に再起動する)
Traefikを無効にしても既存のリソースは削除されずに、Traefikを有効に戻すと再び利用可能になる。
Traefikポートバインディングアクセス
Rancher Desktopは、デフォルトのイングレスコントローラとしてTraefikを使用している。
Traefik ingressのポートアクセスが制限されているため、Rancher Desktopのデプロイ後に権限エラーに遭遇する可能性がある。
多くのLinuxディストリビューションでは、非スーパーユーザが1024以下のTCPおよびUDPポートをリッスンすることを許可していない。
そのため、Traefikがローカルホストの特権ポートをリッスンできるようにする。
sudo sysctl -w net.ipv4.ip_unprivileged_port_start=80
これにより、80番以上の全てのポートが非特権となり、Traefikは当該ポートに正常にアクセスできるようになる。
再起動後も、この変更をカスタムカーネルパラメータとして設定を維持する場合、上記と同じコマンドを/etc/sysctl.confファイル内に追記する。
コンテナランタイム
Rancher Desktopのコンテナランタイムを設定することができる。
ユーザは、コンテナの名前空間を提供して、Docker APIとDocker CLIの使用を可能にするnerdctlまたはdockerd(moby)の使用を提供するcontainerdのオプションがある。
1度に動作できるコンテナランタイムは1つだけであることに注意する。
別のコンテナランタイムに切り替える場合、以下に示す制約がある。
- Kubernetesの再起動が必要である。
- 既存のコンテナランタイムを使用してビルドまたはプルされたワークロードおよびイメージは、切り替え先のコンテナランタイムでは使用できない。