Rancher Desktop はデスクトップ環境上に開発用の Kubernetes 環境や Docker 環境を構築できるアプリケーションです。Rancher は現在は SUSE の傘下にあり、Rancher Desktop も SUSE の Rancher チームを中心に開発されています。

先日、Docker Desktop が個人用途を除いて有償化されたため、代替として注目されています。

インストール

Rancher Desktop の公式ページにも案内がありますが、RPM パッケージは以下の OBS リポジトリで配布されています。
https://download.opensuse.org/repositories/isv:/Rancher:/stable/rpm/

インストールはいつもの通りです。

sudo zypper ar -c https://download.opensuse.org/repositories/isv:/Rancher:/stable/rpm/isv:Rancher:stable.repo
sudo zypper ref
sudo zypper in rancher-desktop

あとは、メニューから Rancher Desktop を選べば起動できます。

Kubernetes のインストール

起動すると、何をセットアップするか聞かれます。ここで、containerd を選ぶと nerdctl が使えるようになります。docker を選ぶと、docker コマンドや API が使えるようになるはずです。

しかし、何やらエラーが。

「Reset Kubernetes」でリセットしてみたところ、今度は何も出ませんでした。

クライアントコマンドは ~/.local/bin/ にインストールされるので、パスを通しておきます:

% ls ~/.local/bin
docker@ helm@ kubectl@ nerdctl@

~/.kube/config は勝手に設定してくれるので、らくらくですね。

完了すると Kubernetes などが動いている VM (Lima) が走っていることが分かります。

% pgrep -a qemu
984 /usr/bin/qemu-system-x86_64 -cpu host -machine q35,accel=kvm -smp 2,sockets=1,cores=2,threads=1 -m 6144 -boot order=d,splash-time=0,menu=on -drive file=/home/geeko/.local/share/rancher-desktop/lima/0/basedisk,media=cdrom,readonly=on -drive file=/home/geeko/.local/share/rancher-desktop/lima/0/diffdisk,if=virtio -cdrom /home/geeko/.local/share/rancher-desktop/lima/0/cidata.iso -netdev user,id=net0,net=192.168.5.0/24,dhcpstart=192.168.5.15,hostfwd=tcp:127.0.0.1:45009-:22 -device virtio-net-pci,netdev=net0,mac=52:55:55:f4:b7:19 -device virtio-rng-pci -display none -device virtio-vga -device virtio-keyboard-pci -device virtio-mouse-pci -parallel none -chardev socket,id=char-serial,path=/home/geeko/.local/share/rancher-desktop/lima/0/serial.sock,server=on,wait=off,logfile=/home/geeko/.local/share/rancher-desktop/lima/0/serial.log -serial chardev:char-serial -chardev socket,id=char-qmp,path=/home/geeko/.local/share/rancher-desktop/lima/0/qmp.sock,server=on,wait=off -qmp chardev:char-qmp -name lima-0 -pidfile /home/geeko/.local/share/rancher-desktop/lima/0/qemu.pid

使ってみる

簡単に何かを動かしてみましょう。

kubectl run redmine-test --image=redmine --port=3000
kubectl port-forward redmine-test 8080:3000

あとはブラウザで http://localhost:8080 にアクセス

kubectl によるトンネリングだけではなく、Rancher Desktop 側にもポートフォワーディング機能があるようですが、私の環境では出てきませんので、もう少し探してみます。

この記事は、「openSUSE AdventCalendar 2018」16日目の記事です。

皆さんおはようございます。橋本修太です。

さて、先日jaのMLにこんな投稿がありました。

【意訳】

openSUSE(Kubic)でCloud Foundry動かしたことある人います?

Kubicのキーワードが目に止まり、はて、Cloud Foundryとは?と思った私は、調査してみました。

本記事は情報収集のみとなります。「やってみた」は次の機会になりますこと、ご了承ください。

Cloud Foundryとは

ホームページはこちら。概要を纏めてくださっているページが幾つか有りますので、それらを見ていきますと、どうやら、webアプリケーションのソースコードをpushするだけで、ビルド・デプロイを自動で行ってくれる、オープンソースのソリューションの模様(商用版もあり)。イメージとしてはherokuに近いですね(こんな記事もありました)。

「アメリカのFortune 500企業のうち約半数が導入済み」といった謳い文句も見られますね。

インストール方法

いくつかあるようです。Cloud Foundry自体、複数のコンポーネントで構成されるソリューションなので、手順があったり、インストールを支援してくれるソリューションがあったりします。

また、Pivotal、SUSEなどがチューニングしたソリューションもあって、それぞれ強みがあるようです。

ちなみに、Cloud Foundryとやりとりを行うコマンドラインツール群、cf-cliは、openSUSEにパッケージがありました。(動くかな?)

A. PCF-DEVをインストール

PCFとは、Pivotal Cloud Foundryの略です。Pivotalはクラウドで有名な会社のようです。

ここが展開している、ローカル開発用のCloud Foundry、PCF-DEVが、インストールしてみるには丁度良いよ、という投稿もstack overflowで見たりしました。

構成としては、Linux(私の場合openSUSE)の上に、VirtualBoxを動かし、その中でPCFを動かすようです。

インストール方法はこちら

B. BOSHでインストール

BOSHは、Cloud Foundryの導入・運用を制御するソリューションのようです。

単一マシンに展開したり、クラスタ構成に展開したりもできるようです。

通常、Cloud Foundryをインストールと言えば、この方法が正攻法?なのかもしれません。

C. SUSE Cloud Foundryをインストール(on Vagrant)

SUSEも、Cloud Foundryには力を入れていて、チューニングしたソリューションを持っていました。

githubはこちら

主なチューニング点として、以下が挙げられていました。

  • Kubernetes(Docker)の上で動くように、Cloud Foundryのコンポーネントのコンテナライズにfissileを使っている
  • Cloud FoundryのコンポーネントはopenSUSE Steamcellで動く
  • オプションとして、Cloud FoundryのAppをopenSUSE stackのpreviewで動かす事が出来る

Steamcellだの、stackだの、previewだの、ちょっとピントこない単語が沢山・・・これらはおいおい調べていく事にしまして、1番目に付いて、もともとCloud FoundryはKubernetesの上で動くようには作られていなかったのですが、そこをSUSE等が開発したとの事です。

件のgithubには、on Kubernetesで動かす方法も記載されているのですが、ここではPCF-DEVと同じように、VMの上で動かす方法を。

Disclaimerに、「openSUSE 42.xは、libvirtでテストしてますよ」とあります。ここが42.xになっているのが、ちょっと気になるところですが・・・(あと、SUSEのgithubなのに、openSUSEがOpenSUSEになっている所とか)

あとは、Deploying SCF on Vagrantのセクション通りにやっていけばよさそうです。

ただ、要件にいきなり「メモリは16G以上は用意してね」とあって、私のデスクトップはもう無理状態です。

D. SUSE Cloud Foundryをインストール(on Kubernetes)

C.で触れましたが、Kubernetesの上にインストールできるのが、SCFの強みとの事。Helmでインストールするようですね。インストールページには要件等書いてありますので、適応させて行けば動くでしょうか?

ちなみに、環境チェック用スクリプトがあるのですが、Kubic上で走らせた所、半分ぐらいerrorとなってしまいました。

課題&感想

  • やってみる!
  • もう少し、正確かつ精密な情報を収集し、記事にする

駆け足で情報収集だけしたのですが、結構複雑な構成をしていて、ちゃんと理解しようとするとそれなりのボリュームになりそうです。使う側は、ソースコードをcf pushすれば、デプロイまで完了、とやりやすい事この上無いですね。

では、16Gメモリを積んでいるノートPCがあるので、近いうちにやってみたをやってみたいと思います。

明日は @ftake さんの、geeko.jpをメンテナンスした話ですね。塩漬けに近かったサイトですので、色々と面白い話題が出てきそうです。こうご期待。