FURYU Tech Blog - フリュー株式会社

フリュー株式会社の開発者が技術情報を発信するブログです。

Rancher完全に理解した

こんにちはこんばんは、フリューのジョンです。

この記事はフリューAdvent Calendar 2018の12/24分となります。(ちなみに弊社はお休みです)

Dockerやってたりすると、オーケストレーションをしたくなりますよね。

そこでよく使われるのがKuberneteであったりするのですが、やっぱり構成が大変だったり、取っ掛かりが難しいとかあるような気がしています。

それでよく使われるのが、GoogleAWSのKubernete、GKEやKESなどのサービスが多いのかなと思います。

ただ、もしそういうのが使えない。。。という方、Rancherはどうですか?と思っています。

Rancherとは

GUIでポチポチっとdocker imageのオーケストレーション構成を簡単に組み立てられるありがたいツールになります。

内部でのLoadBarancerなどの配置、アプリケーションのスケーリングが簡単にできるのは良い点かなと思います。

最近Rancher2系がリリースされており、DockerHubでは rancher/rancher となっています。rancher/serverでは1系がダウンロードできます。

Rancherの起動はDocker(Docker Compose)を使います。docker-compose.ymlは以下のようになります

version: '3'
services:
  rancher-server:
    image: rancher/rancher:latest
    container_name: rancher-server
    ports:
      - "8000:80"
      - "8443:443"
    environment:
      - CATTLE_DB_CATTLE_USERNAME=rancher
      - CATTLE_DB_CATTLE_PASSWORD=rancher
    volumes:
      - ~/rancher/rancher-server/mysql:/var/lib/mysql
      - ~/rancher/rancher-server/mysql-log:/var/log/mysql
      - ~/rancher/rancher-server/cattle:/var/log/cattle
    env_file: .env # もしプロキシなどの設定を渡す必要があればこのような感じで
    restart: unless-stopped
sudo docker-compose up -d

無事に立ち上がりましたら、https://(host名):8443 にアクセスしてみてください。ログイン画面が出ると思います。デフォルトはadmin/adminです。

今回触る上で試しに、構成としては下の図のような構成を作成しようと思います。

Rancherをつかってみる

ポチポチやっていきましょう。まず、clusterを作ります。名前は「kotlin-sample-cluster」です。コマンドが表示されていますのでそれをコピーしておいてください。

次にアプリケーションを起動するサーバを登録します。先程のコマンドをサーバ上で叩いてください。

sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.1.4 --server https://${①}:8443 --token ${②} --ca-checksum ${③} --worker

するとNodesのタブの画面で以下のようにサーバが登録が開始されているのを確認できるはずです。暫く待つと登録完了となるはずです

では実際にアプリケーションを配置します。

まずkotlin-sample-httpd(Apache)

kotlin-sample-tomcat(tomcat)

LB(LoadBalancer)

kotlin-sample-httpd、kotlin-sample-tomcatは私が作成したアプリケーションをimageにしたものになります。

LBでkotlin-sample-httpdへ向けているので、しばらくしてから、http:(ホスト名)/hello にアクセスしてみてください。

hello, world!! という形で表示できていれば、Rancher完全理解したという状態になっているはず、、、です。

まとめ

Docker Imageをクラスタリングできました。ただし、プロキシ環境では難しくなってくるかもしれません。

皆様、困ったときにRancherを思い出してもらえればと思います!