こんにちはこんばんは、フリューのジョンです。
この記事はフリューAdvent Calendar 2018の12/24分となります。(ちなみに弊社はお休みです)
Dockerやってたりすると、オーケストレーションをしたくなりますよね。
そこでよく使われるのがKuberneteであったりするのですが、やっぱり構成が大変だったり、取っ掛かりが難しいとかあるような気がしています。
それでよく使われるのが、GoogleやAWSの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のタブの画面で以下のようにサーバが登録が開始されているのを確認できるはずです。暫く待つと登録完了となるはずです
では実際にアプリケーションを配置します。
LB(LoadBalancer)
kotlin-sample-httpd、kotlin-sample-tomcatは私が作成したアプリケーションをimageにしたものになります。
LBでkotlin-sample-httpdへ向けているので、しばらくしてから、http:(ホスト名)/hello にアクセスしてみてください。
hello, world!! という形で表示できていれば、Rancher完全理解したという状態になっているはず、、、です。
まとめ
Docker Imageをクラスタリングできました。ただし、プロキシ環境では難しくなってくるかもしれません。
皆様、困ったときにRancherを思い出してもらえればと思います!