Posted at

Ubuntu上にRancherを使ってKubernetesを構築する

More than 1 year has passed since last update.


はじめに

RancherOS + RancherでKubernetesを構築していたのですが、Storage系のアプリケーションがまだまだまともに動かなかったので、一旦Ubuntuに移行して構築しているのでメモ程度に。


利用するもの


  • Ubuntu 16.04


    • Clusterにするので3インスタンス

    • バージョンはRancherのDocを参照して選択。



  • Docker 17.03.2


    • こちらもRancher基準で。



  • Rancher 2.x


インストールしていく


Ubuntu

適当にどうぞ。


インターネットアクセスだけ確保しておいて下さい。

Root以外のユーザでDockerを動かしたいなら、特定のユーザに対してDockerグループ権限を付与しておいて下さい。

DockerにアクセスするためのUnixソケットへの権限が必要です。

user@rancher01:~$ ll /var/run/docker.sock

srw-rw---- 1 root docker 0 Jul 23 20:36 /var/run/docker.sock=

# usermod -a -G docker <Username>


Docker

指定のバージョンをインストールするためのスクリプトがRancherにあるのでこちらを。

wget https://releases.rancher.com/install-docker/17.03.sh

sh 17.03.sh

直接実行してもらってもOKですが中身をチェックしたかったので一旦wgetして確認後に実行してます。

実行ログは省きますが、docker versionの結果が表示されていればOK。

+ sudo -E sh -c docker version

Client:
Version: 17.03.2-ce
API version: 1.27
Go version: go1.7.5
Git commit: f5ec1e2
Built: Tue Jun 27 03:35:14 2017
OS/Arch: linux/amd64

Server:
Version: 17.03.2-ce
API version: 1.27 (minimum version 1.12)
Go version: go1.7.5
Git commit: f5ec1e2
Built: Tue Jun 27 03:35:14 2017
OS/Arch: linux/amd64
Experimental: false

手動でも一発叩いてみると良いと思います。


Rancher

Dockerが動いたらRancherアプリケーションを起動します。

$ sudo docker run -v /opt/mysql:/var/lib/mysql -d --restart=unless-stopped -p 8080:80 -p 8443:443 rancher/rancher

Rancherが使うmysqlのデータをノード側に保管することで、コンテナ上のデータライフサイクルから切り離します。

ノードで8443がListenされたらブラウザから開くとRancherのWebUIに接続されます。


Kubernetesクラスタの構築

WebUIの画像まで貼っていくと面倒なので適当に書きますが、クラスタの追加で「Custom」を選択して、各ノードのCLIで画面上に表示されるコマンドを流し込めばあとは勝手にRancherのAgentが構築を行ってくれます。


  • グローバルメニューから、「クラスタの追加」ボタンを押下


    • 「Custom」を選択して、クラスタ名を入力し下部の「次へ」

    • ノードロール枠でControllerとEtcdもチェック。

    • ノードアドレスにIPアドレスを入力

    • ノード間で通信するために利用するので疎通が取れるものにしましょう。



  • ページ真ん中にある投入用コマンドをコピーして、CLIで各ノードに叩き込む。

これによってRancher-agentコンテナが起動して、Kubernetesクラスタを自動的に構築してくれます。

問題なく起動してきたらダッシュボードがオールグリーンな感じになります。

x-3.png


おわりに

Kubernetesを簡単に構築するためのツールは様々ありますが、個人的な興味でRancherを取り上げてみました。

正直Rnacherのダッシュボードからじゃ見れない情報が結構あるので結局kubectlと併用している状況ではありますが、大分視覚的で楽なのは確かですね。

HELMなども含めて、もっともっと発展して安定してくるとサービスで利用しやすくなるので今後に期待!という気持ちであります。