(同じ利用者による、間の11版が非表示)
4行目: 4行目:
<br>
<br>
コンテナ管理において、Rancher Desktopでは、コンテナイメージをビルド、プッシュ、プルする機能と、コンテナを実行する機能が提供されている。<br>
コンテナ管理において、Rancher Desktopでは、コンテナイメージをビルド、プッシュ、プルする機能と、コンテナを実行する機能が提供されている。<br>
これは、Docker CLI(エンジンにMoby / dockerdを選択した場合)またはnerdctl(エンジンにcontainerdを選択した場合)の両方で提供される。<br>
これは、Docker CLI(エンジンにMoby / dockerdを選択した場合)または nerdctl(エンジンにcontainerdを選択した場合)の両方で提供される。<br>
nerdctlは、containerdプロジェクトが提供するdocker-compatible CLI for containerdである。<br>
nerdctlは、containerdプロジェクトが提供するdocker-compatible CLI for containerdである。<br>
<br>
<br>
16行目: 16行目:
<br>
<br>
ローカルシステムでRancherを実行する場合は、Rancher DesktopにRancherをインストールすることができる。<br>
ローカルシステムでRancherを実行する場合は、Rancher DesktopにRancherをインストールすることができる。<br>
<br>
Rancher Desktopの詳細を知りたい場合は、[https://docs.rancherdesktop.io Rancher Desktopの公式ドキュメント]を参照すること。<br>
<br><br>
== Rancher Desktopの動作に必要な条件 ==
Rancher Desktopの動作に必要な条件を、以下に示す。<br>
* DEBパッケージ、RPMパッケージ、AppImageのいずれかをインストールできる環境
* 持続的なインターネット接続
* AMD-VまたはVT-xを搭載したx86_64プロセッサ
* /dev/kvmへの読み書きアクセス
* 8[GB]以上のRAM
* 4CPUs
実行するワークロードによっては、追加のリソースが必要になる場合がある。<br>
<br>
GNOMEではシステムトレイをサポートしていないため、Rancher Desktopのトレイアイコンは表示されないことに注意する。<br>
<br><br>
<br><br>


21行目: 36行目:
[https://github.com/rancher-sandbox/rancher-desktop/releases Rancher DesktopのGithub]にアクセスして、Rancher Desktopをダウンロードする。<br>
[https://github.com/rancher-sandbox/rancher-desktop/releases Rancher DesktopのGithub]にアクセスして、Rancher Desktopをダウンロードする。<br>
ダウンロードしたファイルを解凍する。<br>
ダウンロードしたファイルを解凍する。<br>
  unzip rancher-desktop-<バージョン>.zip
  unzip rancher-desktop-linux-<バージョン>.zip
<br>
<br>
解凍したファイルを任意のディレクトリに配置する。<br>
解凍したファイルを任意のディレクトリに配置する。<br>
28行目: 43行目:
  vi ~/.local/share/applications/Ranchar_Desktop.desktop
  vi ~/.local/share/applications/Ranchar_Desktop.desktop
<br>
<br>
<syntaxhighlight lang="ini">
  # ~/.local/share/applications/Ranchar_Desktop.desktopファイル
  # ~/.local/share/applications/Ranchar_Desktop.desktopファイル
   
   
42行目: 58行目:
  MimeType=;
  MimeType=;
  Keywords=rancher;kubernetes;docker;
  Keywords=rancher;kubernetes;docker;
</syntaxhighlight>
<br>
<br>
Rancher Desktopを起動すると、~/.bashrcファイル、~/.tcshrcファイル、~/.zshrcファイルの最下行に、以下に示す設定が追記される。<br>
Rancher Desktopを起動すると、~/.bashrcファイル、~/.tcshrcファイル、~/.zshrcファイルの最下行に、以下に示す設定が追記される。<br>
  <syntaxhighlight lang="sh">
  <syntaxhighlight lang="sh">
  ### MANAGED BY RANCHER DESKTOP START (DO NOT EDIT)
  ### MANAGED BY RANCHER DESKTOP START (DO NOT EDIT)
  export PATH="/home/suse/.rd/bin:$PATH"
  export PATH="/home/<ユーザ名>/.rd/bin:$PATH"
  ### MANAGED BY RANCHER DESKTOP END (DO NOT EDIT)
  ### MANAGED BY RANCHER DESKTOP END (DO NOT EDIT)
  </syntaxhighlight>
  </syntaxhighlight>
<br>
/dev/kvmへのアクセス権を設定する。<br>
一部の環境では、Rancher Desktopに必要な/dev/kvmを使用するための十分な権限がない。<br>
まず、必要な権限があるかどうかを確認する。<br>
[ -r /dev/kvm ] && [ -w /dev/kvm ] || echo 'insufficient privileges'
<br>
十分な権限が出力されない場合は、ユーザをkvmグループに追加する必要がある。<br>
sudo usermod -a -G kvm "$USER"
<br>
設定を反映させるため、PCを再起動または再ログインする。<br>
<br><br>
<br><br>


65行目: 92行目:
  <syntaxhighlight lang="sh">
  <syntaxhighlight lang="sh">
  ### MANAGED BY RANCHER DESKTOP START (DO NOT EDIT)
  ### MANAGED BY RANCHER DESKTOP START (DO NOT EDIT)
  export PATH="/home/suse/.rd/bin:$PATH"
  export PATH="/home/<ユーザ名>/.rd/bin:$PATH"
  ### MANAGED BY RANCHER DESKTOP END (DO NOT EDIT)
  ### MANAGED BY RANCHER DESKTOP END (DO NOT EDIT)
  </syntaxhighlight>
  </syntaxhighlight>
71行目: 98行目:


== Rancher Desktopの設定 ==
== Rancher Desktopの設定 ==
==== pass ====
<u><code>docker login</code> コマンド、<code>nerdctl login</code> コマンドを使用しない場合は、passの設定は不要である。</u><br>
デフォルトでは、Rancher Desktopは、passを使用して <code>docker login</code> コマンド と <code>nerdctl login</code> コマンド経由で渡された認証情報を安全に保存する。<br>
<br>
まず、passをインストールする。<br>
# RHEL
sudo dnf install pass
# SUSE
sudo zypper install password-store
<br>
Rancher Desktopをインストールした後、GPGキーを作成する。<br>
これはpassが秘密を保護するために使用する。<br>
gpg --generate-key
# 出力例
8D818FB37A9279E341F01506ED96AD27A40C9C73
<br>
上記の出力例が、ユーザのキーIDである。<br>
このキーIDを渡すことで、passを初期化することができる。<br>
pass init <キーID>
<br>
passの詳細を知りたい場合は、[https://www.passwordstore.org/ passの公式Webサイト]を参照すること。<br>
<br>
==== Kubernetesの有効 / 無効 ====
==== Kubernetesの有効 / 無効 ====
このオプションでは、Kubernetesの有効または無効にすることができる。<br>
このオプションでは、Kubernetesの有効または無効にすることができる。<br>
Kubernetesを無効にすることにより、containerdやdockerdだけを単体で動作させて、リソースの消費を抑えることができる。<br>
Kubernetesを無効にすることにより、containerdやdockerdだけを単体で動作させて、リソースの消費を抑えることができる。<br>
初期設定では、Kubernetesは有効化されている。<br>
<br>
<u>初期設定では、Kubernetesは有効化されている。</u><br>
<br>
<br>
Kubernetesの有効 / 無効を切り替える場合、[Enable Kubernetes]チェックボックスをオン / オフする。<br>
Kubernetesの有効 / 無効を切り替える場合、[Enable Kubernetes]チェックボックスをオン / オフする。<br>
84行目: 136行目:
このオプションでは、Traefikを有効または無効にすることができる。<br>
このオプションでは、Traefikを有効または無効にすることができる。<br>
Traefikを無効にすることにより、80番ポートと443番ポートを別のイングレス設定用に解放することができる。<br>
Traefikを無効にすることにより、80番ポートと443番ポートを別のイングレス設定用に解放することができる。<br>
初期設定では、Traefikは有効化されている。<br>
<br>
<u>初期設定では、Traefikは有効化されている。</u><br>
<br>
<br>
Traefikを有効 / 無効に切り替える場合、[Enable Traefik]チェックボックスをオン / オフする。<br>
Traefikを有効 / 無効に切り替える場合、[Enable Traefik]チェックボックスをオン / オフする。<br>
有効 / 無効に切り替えると、Rancher Desktopを手動で再起動する必要がある。<br>
有効 / 無効に切り替えた後、Rancher Desktopを手動で再起動する必要がある。<br>
<br>
<br>
この動作は今後のリリースで変更される予定である。(プロンプトが表示されて、Rancher Desktopが自動的に再起動する)<br>
この動作は今後のリリースで変更される予定である。(プロンプトが表示されて、Rancher Desktopが自動的に再起動する)<br>
<br>
<br>
Traefikを無効にしても既存のリソースは削除されずに、Traefikを有効に戻すと再び利用可能になる。<br>
Traefikを無効にしても既存のリソースは削除されずに、Traefikを有効に戻すと再び利用可能になる。<br>
<br>
==== Traefikポートバインディングアクセス ====
Rancher Desktopは、デフォルトのイングレスコントローラとしてTraefikを使用している。<br>
Traefik ingressのポートアクセスが制限されているため、Rancher Desktopのデプロイ後に権限エラーに遭遇する可能性がある。<br>
<br>
多くのLinuxディストリビューションでは、非スーパーユーザが1024以下のTCPおよびUDPポートをリッスンすることを許可していない。<br>
そのため、Traefikがローカルホストの特権ポートをリッスンできるようにする。<br>
sudo sysctl -w net.ipv4.ip_unprivileged_port_start=80
<br>
これにより、80番以上の全てのポートが非特権となり、Traefikは当該ポートに正常にアクセスできるようになる。<br>
<br>
再起動後も、この変更をカスタムカーネルパラメータとして設定を維持する場合、上記と同じコマンドを <u>/etc/sysctl.confファイル</u> 内に追記する。<br>
<br><br>
<br><br>


97行目: 162行目:
Rancher Desktopのコンテナランタイムを設定することができる。<br>
Rancher Desktopのコンテナランタイムを設定することができる。<br>
<br>
<br>
ユーザは、コンテナの名前空間を提供して、Docker APIとDocker CLIの使用を可能にするnerdctlまたはdockerd(moby)の使用を提供するcontainerdのオプションがある。
ユーザは、コンテナの名前空間を提供して、Docker APIとDocker CLIの使用を可能にする nerdctl または dockerd(moby)の使用を提供するcontainerdのオプションがある。<br>
1度に動作できるコンテナランタイムは1つだけであることに注意する。<br>
1度に動作できるコンテナランタイムは1つだけであることに注意する。<br>
<br>
<br>
別のコンテナランタイムに切り替える場合、以下に示す制約がある。<br>
別のコンテナランタイムに切り替える場合、以下に示す制約がある。<br>
<br>
* Kubernetesの再起動が必要である。
* Kubernetesの再起動が必要である。
* 既存のコンテナランタイムを使用してビルドまたはプルされたワークロードおよびイメージは、切り替え先のコンテナランタイムでは使用できない。
* 既存のコンテナランタイムを使用してビルド または プルされたワークロードおよびイメージは、切り替え先のコンテナランタイムでは使用できない。
<br>
==== containerdとdockerd(moby)の違い ====
下表に、Rancher Desktopで選択できるコンテナランタイムの違いを示す。<br>
<br>
<center>
{| class="wikitable"
|+ containerd と dockerd(moby) の比較
! ランタイム !! 特徴
|-
| rowspan="4" | containerd
| CNCFプロジェクトとして管理されているコンテナランタイムである。
|-
| CLIツールとして <code>nerdctl</code> を使用する。
|-
| Kubernetesが内部で使用するランタイムと同一であるため、Kubernetes環境との親和性が高い。
|-
| lazy-pullingによる高速なイメージ起動 (eStargzイメージ) をサポートしている。
|-
| rowspan="3" | dockerd(moby)
| Docker APIとDocker CLIを完全にサポートしており、既存のDockerワークフローとの互換性が高い。
|-
| CLIツールとして <code>docker</code> を使用する。
|-
| <code>docker compose</code> (v2統合) を使用したマルチコンテナ管理に対応している。
|}
</center>
<br>
==== CLIツールの対応関係 ====
下表に、コンテナランタイムとCLIツールの対応関係を示す。<br>
<br>
<center>
{| class="wikitable"
|+ コンテナランタイムとCLIツールの対応
! コンテナランタイム !! CLIツール !! 主なコマンド例
|-
| containerd || nerdctl || <u>nerdctl build</u>, <u>nerdctl push</u>, <u>nerdctl pull</u>, <u>nerdctl run</u>
|-
| dockerd(moby) || docker || <u>docker build</u>, <u>docker push</u>, <u>docker pull</u><br><u>docker run</u>, <u>docker compose</u>
|}
</center>
<br>
==== コンテナランタイムの切り替え ====
コンテナランタイムを切り替える方法を、以下に示す。<br>
<br>
CLIから切り替える場合は、<code>rdctl</code> コマンドを使用する。<br>
# containerdに切り替える
rdctl set --container-engine containerd
# dockerd(moby)に切り替える
rdctl set --container-engine moby
<br>
GUIから切り替える場合は、Kubernetes設定メニューの[Container Engine]セクションで使用するエンジンを選択する。<br>
<br>
==== ストレージドライバの選択 (Mobyエンジン使用時) ====
Mobyエンジンを使用している場合、ストレージドライバを選択することができる。<br>
<br>
* classic
*: 従来型のストレージドライバである。
* snapshotter
*: containerd-snapshotterを使用するストレージドライバである。
*: バージョン1.21以降の新規インストールではデフォルトで選択されている。
<br>
CLIからストレージドライバを切り替える場合は、以下のコマンドを使用する。<br>
# classicに切り替える
rdctl set --container-engine.moby-storage-driver classic
# snapshotterに切り替える
rdctl set --container-engine.moby-storage-driver snapshotter
<br>
ストレージドライバを切り替えると、切り替え前のドライバで作成したイメージはもう一方のドライバからは参照できなくなる。<br>
必要に応じて、イメージの再ビルドまたは再プルを行うこと。<br>
<br><br>
 
== 既存のDocker / Podmanとの共存 ==
Rancher Desktopは常にVM内で独自のコンテナランタイムを動作させる。<br>
ホスト上に既にインストール済みのDocker EngineやPodmanを、Rancher Desktopのバックエンドとして直接利用するモードは提供されていない。<br>
<br>
==== Docker Engineとの共存 ====
ホスト上で既にDocker Engine (docker.io / docker-ce) がシステムサービスとして動作している環境でも、Rancher Desktopを使用することは可能である。<br>
ただし、Dockerソケットの競合に注意する必要がある。<br>
<br>
ホストのDocker Engineは <u>/var/run/docker.sock</u> を使用する。<br>
Rancher Desktopを管理者権限ありで起動すると、同じパスにソケットを作成しようとするため競合が発生する。<br>
<br>
この競合を回避するには、Rancher Desktopを管理者権限なしで起動する。<br>
この場合、Rancher Desktopのソケットは <u>~/.rd/docker.sock</u> に作成されるため、ホストのDockerソケットと競合しない。<br>
<br>
Rancher Desktop側のDockerを使用する場合は、環境変数 <code>DOCKER_HOST</code>を設定する。<br>
<syntaxhighlight lang="sh">
export DOCKER_HOST=unix://$HOME/.rd/docker.sock
</syntaxhighlight>
<br>
または、<code>docker context</code> コマンドでホストのDockerとRancher DesktopのDockerを切り替えることができる。<br>
# Rancher DesktopのDockerに切り替える
docker context use rancher-desktop
# ホストのDockerに切り替える
docker context use default
<br>
Rancher Desktop内のコンテナイメージとホストのDockerイメージは物理的に分離されている。<br>
一方で作成またはプルしたイメージは、もう一方では使用できないため、必要に応じてイメージの再プルまたは再ビルドを行うこと。<br>
<br>
==== Podmanとの共存 ====
Podmanはホストのカーネル上で直接動作するのに対し、Rancher DesktopはVM内でランタイムを動作させるため、技術的な競合は発生しない。<br>
そのため、PodmanとRancher Desktopは問題なく共存できる。<br>
<br>
Rancher DesktopにはPodmanをコンテナエンジンとして統合する機能は提供されていない。<br>
Kubernetes開発にはRancher Desktopを使用して、コンテナ管理にはPodmanを使用するというハイブリッド運用も可能である。<br>
<br>
==== 共存時の注意点 ====
既存のDocker EngineやPodmanとRancher Desktopを共存させる場合の注意点を以下に示す。<br>
<br>
* Docker Desktopがインストール済みの場合は、Rancher Desktopの導入前に完全にアンインストールすること。
*: 残存ファイルがソケットやコンテキストの競合を引き起こす可能性がある。
*: <br>
* Rancher Desktopは <u>~/.rd/binディレクトリ</u> にCLIツールを配置する。
*: ホストのDockerパスと競合しないように、PATHの優先順位に注意すること。
*: <br>
* <code>docker context list</code> コマンドで現在のコンテキストを確認して、意図したランタイムに接続していることを確認すること。
* IDEがDockerと連携している場合は、正しいdockerコンテキストが選択されていることを確認すること。
<br><br>
 
== リソースの設定 ==
Rancher Desktopが使用するCPUおよびメモリのリソースを設定することができる。<br>
<br>
==== CPUの割り当て ====
CPUの割り当て数を変更する場合は、[Preferences] - [Virtual Machine] - [Hardware] - [CPUs]で設定する。<br>
選択可能なCPU数は、ホストシステムが搭載するCPU数に基づいて決定される。<br>
<br>
設定値が赤色エリアに表示される場合は、ホストシステムのサービスに影響を与える可能性がある割り当てであることを示す。<br>
<br>
==== メモリの割り当て ====
メモリの割り当て量を変更する場合は、[Preferences] - [Virtual Machine] - [Hardware] - [Memory]で設定する。<br>
選択可能なメモリ量は、ホストシステムが搭載するメモリ量に基づいて決定される。<br>
<br>
設定値が赤色エリアに表示される場合は、ホストシステムのサービスに影響を与える可能性がある割り当てであることを示す。<br>
<br>
Windowsでは、デフォルトでホストマシンのメモリの50[%]が割り当てられる。<br>
<br><br>
 
== ボリュームマウント ==
Rancher Desktopでは、ホストのディレクトリをコンテナにマウントすることができる。<br>
<br>
==== デフォルト共有ディレクトリ ====
デフォルトで共有されるディレクトリを以下に示す。<br>
<br>
* Linux
*: <u>/home/$USER</u>
* MacOS
*: <u>/Users/$USER</u>
* Linux および MacOS共通
*: <u>/tmp/rancher-desktop</u>
<br>
==== マウントタイプ ====
使用可能なマウントタイプを以下に示す。<br>
<br>
* reverse-sshfs (デフォルト)
*: ホスト上でSFTPサーバを実行し、VM内からSSH接続を確立してマウントする方式である。
* 9p
*: QEMU virtio-9p-pciデバイスを使用するマウント方式であり、クロスプラットフォームで利用できる。
* virtiofs (macOS)
*: Apple Virtualization.Frameworkを利用するマウント方式である。
<br>
==== カスタムディレクトリの追加 ====
デフォルト以外のディレクトリをマウントする場合は、[Preferences] - [Virtual Machine] - [Volumes]タブからカスタムディレクトリを追加することができる。<br>
<br>
ディレクトリはまずVMにマウントされ、その後コンテナ内にマウントされる。<br>
<br><br>
<br><br>
== イメージの管理 ==
Rancher Desktopでは、コンテナイメージのビルド、プル、プッシュ、削除などの操作を行うことができる。<br>
<br>
==== イメージのビルド ====
イメージをビルドする場合は、使用するコンテナランタイムに応じたコマンドを使用する。<br>
<br>
containerdを使用している場合は、以下のコマンドを使用する。<br>
nerdctl build --tag image-name:tag .
<br>
dockerd(moby)を使用している場合は、以下のコマンドを使用する。<br>
docker build --tag image-name:tag .
<br>
Kubernetesで使用するイメージをビルドする場合は、<code>k8s.io</code>名前空間を指定する。<br>
nerdctl build -n k8s.io -t image-name:tag .
<br>
==== イメージのプル / プッシュ ====
イメージをプルする場合は、以下のコマンドを使用する。<br>
# docker
docker pull image-name
# nerdctl
nerdctl pull image-name
<br>
イメージをプッシュする場合は、以下のコマンドを使用する。<br>
# docker
docker push image-name
# nerdctl
nerdctl push image-name
<br>
==== イメージの一覧表示と削除 ====
イメージを一覧表示する場合は、以下のコマンドを使用する。<br>
# docker
docker image ls
# nerdctl
nerdctl image ls
<br>
イメージを削除する場合は、以下のコマンドを使用する。<br>
# docker
docker image rm <image-id>
# nerdctl
nerdctl image rm <image-id>
<br>
==== GUIでの操作 ====
Rancher Desktop UIの [Images] タブから、イメージのビルド、プル/プッシュ、削除を行うことができる。<br>
<br>
==== 名前空間の注意点 ====
<code>nerdctl</code>はcontainerdの名前空間を使用しており、デフォルトでは <code>default</code> 名前空間が使用される。<br>
Kubernetesでイメージを利用するには、<code>--namespace k8s.io</code> フラグを指定してビルドまたはプルする必要がある。<br>
<br>
また、KubernetesのデプロイメントマニフェストでローカルイメージをKubernetesに使用する場合は、<code>imagePullPolicy: Never</code> を設定する必要がある。<br>
<br><br>
== Docker Composeの使用 ==
Rancher Desktop 1.1以降では、Docker Composeが自動的にインストールされる。<br>
<br>
dockerd(moby)を使用している場合は <code>docker compose</code> コマンドを使用し、containerdを使用している場合は <code>nerdctl compose</code> コマンドを使用する。<br>
<br>
==== 基本的なコマンド ====
Docker Composeの基本的なコマンドを、以下に示す。<br>
<br>
コンテナを起動する場合は、以下のコマンドを使用する。<br>
# docker
docker compose up
# nerdctl
nerdctl compose up
<br>
コンテナをバックグラウンドで起動する場合は、以下のコマンドを使用する。<br>
# docker
docker compose up -d
# nerdctl
nerdctl compose up -d
<br>
コンテナを停止する場合は、以下のコマンドを使用する。<br>
# docker
docker compose down
# nerdctl
nerdctl compose down
<br>
ログを確認する場合は、以下のコマンドを使用する。<br>
# docker
docker compose logs
# nerdctl
nerdctl compose logs
<br>
特定のサービスを再起動する場合は、以下のコマンドを使用する。<br>
# docker
docker compose restart SERVICE_NAME
# nerdctl
nerdctl compose restart SERVICE_NAME
<br><br>
== ネットワーク設定 ==
==== ポートフォワーディング ====
Rancher Desktop 1.9以降では、全てのNodePortが自動的にホストに転送される。<br>
<br>
デフォルトでは非特権ポート (ポート番号1024より大きいポート) のみ設定可能である。<br>
管理者権限で実行することにより、特権ポート (ポート番号1024以下) のマッピングも可能になる。<br>
<br>
GUIからポートフォワーディングを設定する場合は、[Port Forwarding]タブを使用する。<br>
<br>
コマンドでポートを公開する場合は、以下のように指定する。<br>
# nerdctl
nerdctl run -p <ホスト側のポート番号>:<コンテナ側のポート番号> IMAGE
# docker
docker run -p <ホスト側のポート番号>:<コンテナ側のポート番号> IMAGE
<br>
==== VPN環境での使用 ====
VPN環境でRancher Desktopを使用する場合は、実験的なgvisorベースのネットワークスタックを利用することができる。<br>
以下のコマンドで有効化する。<br>
rdctl set --experimental.virtual-machine.networking-tunnel=true
<br>
この設定により、VPN背後での動作およびプライベートレジストリへのアクセスに対応できる。<br>
<br>
==== プロキシ設定 ====
プロキシを使用する環境では、[Preferences] - [Proxy]タブからプロキシの有効化または無効化を設定することができる。<br>
<br><br>
== kubectl / helmの使用 ==
Rancher Desktopをインストールすると、<code>kubectl</code>、<code>helm</code>、<code>docker</code> または <code>nerdctl</code> が自動的にインストールされる。<br>
これらのツールは、<u>~/.rd/binディレクトリ</u> に配置され、環境変数 <code>PATH</code> への追加は自動的に管理される。<br>
<br>
==== kubectlの基本コマンド ====
kubectlの基本的なコマンドを、以下に示す。<br>
<br>
Podの一覧を表示する場合は、以下のコマンドを使用する。<br>
kubectl get pods
<br>
マニフェストファイルをデプロイする場合は、以下のコマンドを使用する。<br>
kubectl apply -f deployment.yaml
<br>
ポートフォワーディングを設定する場合は、以下のコマンドを使用する。<br>
kubectl port-forward pod/<POD名> <ホスト側のポート番号>:<コンテナ側のポート番号>
<br>
==== helmの基本コマンド ====
helmの基本的なコマンドを、以下に示す。<br>
<br>
リポジトリを追加する場合は、以下のコマンドを使用する。<br>
helm repo add NAME URL
<br>
チャートをインストールする場合は、以下のコマンドを使用する。<br>
helm install RELEASE_NAME CHART
<br>
==== ローカルイメージをKubernetesで使用する方法 ====
ローカルでビルドしたイメージをKubernetesで使用する場合は、以下の手順で行う。<br>
<br>
まず、<code>k8s.io</code> 名前空間を指定してイメージをビルドする。<br>
nerdctl build -n k8s.io -t my-app:latest .
<br>
次に、デプロイメントマニフェストで <code>imagePullPolicy: Never</code> を指定する。<br>
<br>
<syntaxhighlight lang="yaml">
apiVersion: apps/v1
kind: Deployment
metadata:
    name: my-app
spec:
    replicas: 1
    selector:
      matchLabels:
          app: my-app
    template:
      metadata:
          labels:
            app: my-app
      spec:
          containers:
          - name: my-app
            image: my-app:latest
            imagePullPolicy: Never
</syntaxhighlight>
<br><br>
== rdctlコマンド ==
<code>rdctl</code> は、Rancher DesktopのGUI機能へのCLIアクセスを提供するGoバイナリである。<br>
HTTP REST API経由でRancher Desktopと通信するため、<code>rdctl</code> コマンドを使用する際はRancher Desktopアプリケーションが実行中である必要がある。<br>
<br>
==== 主要サブコマンド ====
<code>rdctl</code> の主要なサブコマンドを、以下に示す。<br>
<br>
<center>
{| class="wikitable"
|+ rdctlの主要サブコマンド一覧
! サブコマンド !! 説明
|-
| <code>rdctl help</code> || ヘルプを表示する。
|-
| <code>rdctl version</code> || バージョンを表示する。
|-
| <code>rdctl api</code> || APIエンドポイントへ直接アクセスする。
|-
| <code>rdctl list-settings</code> || 現在の設定をJSON形式で表示する。
|-
| <code>rdctl set</code> || 設定を変更する。
|-
| <code>rdctl start</code> || Rancher Desktopを起動する。
|-
| <code>rdctl shutdown</code> || Rancher Desktopを安全に終了する。
|-
| <code>rdctl shell</code> || VM内でインタラクティブシェルを実行する。
|-
| <code>rdctl snapshot</code> || VMスナップショットを管理する。(create, delete, list, restore, unlock)
|-
| <code>rdctl extension install</code> || 拡張機能をインストールする。
|-
| <code>rdctl extension ls</code> || インストール済み拡張機能を一覧表示する。
|-
| <code>rdctl extension uninstall</code> || 拡張機能をアンインストールする。
|-
| <code>rdctl create-profile</code> || デプロイメントプロファイルを生成する。
|-
| <code>rdctl completion</code> || シェル自動補完スクリプトを生成する。
|}
</center>
<br>
==== よく使うコマンドパターン ====
<code>rdctl</code> のよく使うコマンドパターンを以下に示す。<br>
<br>
現在の設定を確認する場合は、以下のコマンドを使用する。<br>
rdctl list-settings
<br>
複数の設定を一括で変更する場合は、以下のコマンドを使用する。<br>
rdctl set --kubernetes-enabled=false --container-engine docker
<br>
Kubernetesを無効化する場合は、以下のコマンドを使用する。<br>
rdctl set --kubernetes-enabled=false
<br>
コンテナエンジンを変更する場合は、以下のコマンドを使用する。<br>
# dockerd(moby)に変更
rdctl set --container-engine moby
# containerdに変更
rdctl set --container-engine containerd
<br>
==== APIエンドポイントの概要 ====
下表に、<code>rdctl</code> が通信するAPIエンドポイントの概要を示す。<br>
<br>
APIサーバはローカルホストで動的ポートをリッスンしており、Basic認証を使用している。<br>
<br>
<center>
{| class="wikitable"
|+ APIエンドポイント一覧
! メソッド !! エンドポイント !! 説明
|-
| GET || <code>/v1/settings</code> || 現在の設定を取得する。
|-
| PUT || <code>/v1/settings</code> || 設定を更新する。
|-
| GET || <code>/v1/about</code> || アプリケーション情報を取得する。
|-
| GET || <code>/v1/backend_state</code> || バックエンドの状態を取得する。
|-
| PUT || <code>/v1/factory_reset</code> || ファクトリーリセットを実行する。
|-
| POST || <code>/v1/diagnostic_checks</code> || 診断チェックを実行する。
|}
</center>
<br><br>
== 拡張機能 ==
Rancher Desktop 1.9.0以降で拡張機能を利用することができる。<br>
Docker Desktop Extensionsと互換性があり、既存のDocker拡張機能を使用することも可能である。<br>
<br>
==== 拡張機能のインストール ====
GUIからインストールする場合は、Rancher Desktop UIの[Extensions] - [Catalog]タブで拡張機能を検索してインストールする。<br>
<br>
CLIからインストールする場合は、以下のコマンドを使用する。<br>
rdctl extension install <イメージID>:<タグ>
# 例
rdctl extension install docker/logs-explorer-extension:0.2.2
<br>
==== 利用可能な拡張機能の例 ====
利用可能な拡張機能の例を、以下に示す。<br>
<br>
* docker/logs-explorer-extension
*: コンテナのログを探索・分析するためのツールである。
* Epinio
*: Kubernetesへのアプリケーションデプロイを簡素化するプラットフォームである。
* Open WebUI
*: LLM実行環境を提供するWebUIであり、Ollama統合をサポートしている。
* SUSE Application Collection
*: SUSEが提供するアプリケーションコレクションである。
<br>
==== 拡張機能のアンインストール ====
GUIからアンインストールする場合は、Extensions UIから操作する。<br>
<br>
CLIからアンインストールする場合は、以下のコマンドを使用する。<br>
rdctl extension uninstall <image-id>:<tag>
<br>
拡張機能のアップデートが利用可能な場合は、左メニューの拡張機能アイコンに赤いバブルが表示される。<br>
<br><br>
== トラブルシューティング ==
==== /dev/kvmの権限エラー ====
<u>/dev/kvm</u> への読み書き権限が不足している。<br>
<br>
まず、以下のコマンドで権限を確認する。<br>
[ -r /dev/kvm ] && [ -w /dev/kvm ] || echo 'insufficient privileges'
<br>
権限が不足している場合は、ユーザを<code>kvm</code>グループに追加する。<br>
sudo usermod -a -G kvm "$USER"
<br>
設定を反映させるため、PCを再起動または再ログインする。<br>
<br>
==== Dockerソケットの権限不足 ====
Dockerソケットへの書き込み権限が不足している。<br>
<br>
解決するには、ユーザをdockerグループに追加する。<br>
sudo usermod -a -G docker "$USER"
<br>
設定を反映させるため、PCを再起動または再ログインする。<br>
<br>
==== ストレージドライバの不一致によるイメージ非表示 ====
mobyのclassicとsnapshotter間でイメージが表示されない。<br>
<br>
原因は、イメージが非アクティブなストレージドライバ側に存在しているためである。<br>
解決するには、ストレージドライバを統一するか、対象のストレージドライバに合わせてイメージを再ビルドまたは再プルする。<br>
<br>
==== GNOMEでのシステムトレイ問題 ====
GNOMEではシステムトレイをサポートしていないため、Rancher Desktopのトレイアイコンが表示されない。<br>
<br>
GNOMEでRancher Desktopを使用する場合は、トレイアイコンが表示されないことを考慮した上で使用すること。<br>
<br>
==== 診断機能の活用 ====
Rancher Desktopには[Diagnostics]タブが提供されており、以下の項目を確認することができる。<br>
<br>
* 最小要件の確認
* 設定ミスの検出
* ストレージドライバの分析
* docker contextの確認
* DOCKER_HOST設定の検証
<br>
問題が発生した場合は、まず、[Diagnostics]タブで診断を実行して原因を特定することを推奨する。<br>
<br><br>
{{#seo:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux
|image=/resources/assets/MochiuLogo_Single_Blue.png
}}


__FORCETOC__
__FORCETOC__
[[カテゴリ:CentOS]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]]
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:Web]][[カテゴリ:コンテナ]]