Rancher使ってみるよ!
@banban525さんの記事を読んで「これならKubernetesクラスターがすごく扱い易くなりそうだな〜」という気持ちになってから、使ってみたいと思っておりました。Kubernetes入門としてのRancher Server ~ステップバイステップでリバースプロキシとVPNを立ててみる~
Rancher公式サイト の「Why Rancher?」を読むと、以下のポイントが挙げられています。
- GKEなどの複数のPublic CloudやPrivate CloudのKubernetesクラスターを扱える
- YAMLをガッツリ自分で書かなくてもミスらずにデプロイできる
- オープンソース!
docker run
ですぐ始められる
いいですね!ヽ(=´▽`=)ノ
今回は、このRancherを使って以下のことに取り組みます。
- 以前作ったk3sのクラスターを扱えるようにする
- 別途Ubuntu Server上に構築したNFSをKubernetesのボリュームとして設定する
セットアップ
起動!
Rancherを一番簡単に起動してみます。sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher
[Note]
上記の方法だとRancherインストール時に作られるSELF-SIGNEDな証明書を使うため、ブラウザでアクセスした際に警告画面になります。今回は「開発および学習用途」と割り切ってこのまま進みますが、チーム開発で使う場合などもっと厳密な取り扱いが必要な状況では、公式の「Choose an SSL Option and Install Rancher」を参照して良い感じに証明書を読み込ませて起動してください。
ブラウザから、ホスト名かIPアドレスでアクセスします。
上述のような理由から警告画面が表示されますが、本記事では「危険を承知で続行」を選びます。

アカウント設定
初期管理者アカウントのadmin
のパスワードを設定します。ランダム生成も可能です。
URL設定
ホスト名を指定します。今回はDNSが効かない家庭LANなのでIPアドレスを指定しました。
使用開始!
簡単に起動して使い始められる状態になりました。ではいろいろやってみましょう(((((((((((っ・ω・)っクラスター追加
ログインするとClusters
画面が表示されるので、まずは右下のメニューで「日本語」を選択して画面を日本語にしましょう。クラスターを追加
ボタンを選択します。
多様なプロバイダから選べますね。オンプレで構築済みのKubernetesクラスターに接続するため、
Import
を選びクラスター名を入力して作成
ボタンを選択します。
Rancherと連携するためにKubernetesクラスターに対して実行する処理が表示されます。今回はRancher自身がサインした証明書を使う起動方法で実行しているので、一番下の処理を実行します。

クラスター画面に戻ってしばらくすると、下図のように「状態」が
Wainting
からActive
になります。これで既存のクラスター
kemo-cluster
をRancherで扱えるようになりました!ヽ(=´▽`=)ノ
[Note]
状態がいつまでも
Pending
のままの場合は、一旦クラスターを削除してから再び追加し、kubectlでの適用処理を実施するといいかもしれません。クラスターの一覧から
kemo-cluster
を選択すると、以下のような情報画面が表示されます。
永続ボリュームを追加
冒頭でご紹介した@banban525さんの記事にもあるように、Kubernetesクラスターで稼働させるサービスの情報を永続化する場合は、別途ストレージをボリューム設定して使うのが便利です。という訳で永続ボリュームを設定します。画面上部のNavigation Barで
[ストレージ]-[永続ストレージ]
を選択します。表示された画面でボリュームを追加
ボタンを選択します。
「名称」を入力、「ボリュームプラグイン」で
NFS共有
を選択したら、あらかじめ作っておいたNFSの情報を入力して保存
ボタンを選択します。
「状態」が
Active
になったら使用可能です。
プロジェクトにボリュームを追加する
まずプロジェクトを選択します。今回は下図のように
Default
プロジェクトを選択しました。
[ワークロード]-[ボリューム]
で「ボリュームを追加」を選択します。
「永続ボリューム」に先程作った
kemo-volume
を指定し、「名前」など各種情報を設定して作成
ボタンを選択します。
「状態」が
Bound
になったら設定完了です。
まとめ
作業途中感がすごいですが、今回はここまでにします(´・ω・`)既存のk3sクラスターをとても簡単にRancherと連携できることが確認できました。
あと、ボリューム設定なども画面で確認しながら簡単に設定できました。
次回はRancherを使って以下を実践予定です。
- Nodeにラベルを設定する
- 実物がRaspberry PiのNodeとそれ以外を区別
- ラベルセレクターの仕組みを使って、特定のNodeにデプロイする