Rancher Desktop for Windows

投稿者: | 7月 13, 2022

普段、Windowsは端末として使わないのだが、WindowsでもRancher Desktopをインストールしてみた。
ただ、Windowsだと、Mac/Linuxで入っているようなツールが入っていないので、少しめんどくさいなぁとおもったがそもそもBashが入ってないじゃん。。。で一旦サジを投げそうになったが、今のWindowsは、WSL 2前提なので、Ubuntuを入れれば、全て解決ということになった。もはや、Chocolateyも不要かもしれない。

WSL 2がインストールされて困る人は殆どいないと思うけど、もし、WSL 2がインストールされて困るのであれば、以下はやらないこと。

やってみて思ったが。。。結構CPUリソースがいるので、古いパソコンだと実用では厳しいかもしれない。WSLを2台も立ち上げているので。

Rancher のダウンロード
以下からダウンロードする。1.3.0がリリースされていた。
https://github.com/rancher-sandbox/rancher-desktop
https://github.com/rancher-sandbox/rancher-desktop/releases/download/v1.3.0/Rancher.Desktop.Setup.1.3.0.exe

そのままexeをクリックしてインストール
インストールの途中PowerShellが立ち上がり、WSL2などが自動的にインストールされ、最後に再起動をする。

UntitledImage

UntitledImage
Rancher Desktopのアイコンをクリックするとすぐに再度、自動で再起動される。

再度、Rachner Desktopのアイコンをクリック
イメージのダウンロードが完了し、起動するまで待つ。5分ぐらいかかる。

 

あまり気にしていなかったが、Rancher Desktopには、ダッシュボードが付いている。Kubernetes純正の違って、ログインしなくていいのは便利か。でもあまり使わないかも。

UntitledImage

インストールできるKubernetesバージョンも指定できる。1.23系はまだ周りが出揃っていないので、1.22系を利用することをおすすめする。

UntitledImage

コマンドラインツールも入っている。ここら辺は、プラットフォームによらず共通。

UntitledImage

参考情報だが、WindowsのRancher Desktopは、WSL2で動いている。

UntitledImage

MAC版と異なり、ここで、コンテナのリソースは設定できず、リソース設定を変える場合は、WSLの設定を変える。

一旦、Rancher Desktopを停止して、以下のコマンドを実行し、Notepadで設定を記入する。

wsl --shutdown
wsl -l -v
notepad "$env:USERPROFILE\.wslconfig"

自動設定でも問題ないが、リソースを固定させるために以下のように設定する。

[wsl2]
memory=8GB
processors=4
swap=0

ただ、デフォルトのメモリは、搭載メモリの50%あるいは8GBのうち少ない方が設定される。

 

これで終わりなのだが。。。CSI Hostpath Driverをインストールするためには、bashが必要なので、PowerShellで以下を実行する。

wsl --install -d Ubuntu-20.04

Ubuntu 20.04の仮想マシンがダウンロードされ起動する。(これは昔のBash on Windows?)
Ubuntuの画面で、ユーザ名とパスワードを入力する。

UntitledImage

Ubuntuの起動ができたら、改めてRancher Desktopを起動。

このままだと、Rancher Desktopに繋がらないので、configファイルをWindowsの領域からもってくる。(この操作、Rancher Desktopを起動するたびに必要。)

mkdir -p .kube
cp /mnt/c/Users/<ユーザ名>/.kube/config .kube/
chmod 600 .kube/config

kubectlは、初回実行時に自動ダウンロードされ、helmとかgitはもともと入っている。

これで、kubectl get node とかが使えるようになる。CSI Hostpath Driverをインストールをする。

SNAPSHOTTER_VERSION=5.0.1
# Apply VolumeSnapshot CRDs
kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/v${SNAPSHOTTER_VERSION}/client/config/crd/snapshot.storage.k8s.io_volumesnapshotclasses.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/v${SNAPSHOTTER_VERSION}/client/config/crd/snapshot.storage.k8s.io_volumesnapshotcontents.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/v${SNAPSHOTTER_VERSION}/client/config/crd/snapshot.storage.k8s.io_volumesnapshots.yaml


# Create Snapshot Controller
kubectl -n kube-system apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/v${SNAPSHOTTER_VERSION}/deploy/kubernetes/snapshot-controller/rbac-snapshot-controller.yaml
kubectl -n kube-system apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/v${SNAPSHOTTER_VERSION}/deploy/kubernetes/snapshot-controller/setup-snapshot-controller.yaml


# Install CSI-Hostpath Driver
git clone https://github.com/kubernetes-csi/csi-driver-host-path --depth 1
cd csi-driver-host-path
./deploy/kubernetes-1.22/deploy.sh


# Define Storage Class
kubectl apply -f ./examples/csi-storageclass.yaml


# Set default Storage Class
kubectl patch storageclass local-path \
-p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
kubectl patch storageclass csi-hostpath-sc \
-p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

ちなみに、Ubuntu VMは、CSI hostpath Driverを入れるだけにBashが必要だったので、シャットダウンしてしまい、Windows上で操作しても構わない。

あとは、このページの通り、動作確認ができる。
https://www.blog.slow-fire.net/2022/04/29/rancher-desktopでcsi-hostpath-driverを使う%E3%80%82%E3%80%82%E3%80%82とその他/

 

追伸

Longhornを試してみたが、Nodeに大きく依存するためだめだった。

MacBook-Air ~ % kubectl -n longhorn-system logs longhorn-manager-jg24p
time=”2022-07-13T08:23:18Z” level=error msg=”Failed environment check, please make sure you have iscsiadm/open-iscsi installed on the host”
time=”2022-07-13T08:23:18Z” level=fatal msg=”Error starting manager: environment check failed: Failed to execute: nsenter [–mount=/host/proc/1/ns/mnt –net=/host/proc/1/ns/net iscsiadm –version], output , stderr, nsenter: failed to execute iscsiadm: No such file or directory\n, error exit status 127″

そういえば、LonghornはiSCSIを使うんだった。

コメントを残す