2019/06/18

RancherでKubernetesクラスターを使うっ!(セットアップとボリューム追加編)

Rancher使ってみるよ!

@banban525さんの記事を読んで「これならKubernetesクラスターがすごく扱い易くなりそうだな〜」という気持ちになってから、使ってみたいと思っておりました。
Kubernetes入門としてのRancher Server ~ステップバイステップでリバースプロキシとVPNを立ててみる~

Rancher公式サイト の「Why Rancher?」を読むと、以下のポイントが挙げられています。
  • GKEなどの複数のPublic CloudやPrivate CloudのKubernetesクラスターを扱える
  • YAMLをガッツリ自分で書かなくてもミスらずにデプロイできる
  • オープンソース!
  • docker runですぐ始められる

いいですね!ヽ(=´▽`=)ノ
今回は、このRancherを使って以下のことに取り組みます。

セットアップ

起動!

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にデプロイする