Rancher 2.0 Technical PreviewでGKE Kubernetes Clusterをインポートしてみる

Rancher2.0からRancherのアーキテクチャがDockerベースからkubernetesベースになり、既存のkubernetesクラスタをインポートしてRancher Serverの管理配下にできるようになりました。Rancherカタログ機能も既存のkubernetesクラスタに対応します。

Rancher2.0のGAは、early 2018を予定しているそうです。Technical Preview版でGKE Kubernetes Clusterのインポートを試してみようと思います。

# 1.GKE Kubernetes Clusterの構築

Google Cloud Platformに申し込んで、Google Cloud SDK Shellをインストールしてコマンドラインで公式のチュートリアルに沿ってGuestbookを稼働させるKubernetes Clusterを構築しました。
今回は、Rancher2.0でインポートするところを中心にするので、GKEでのKubernetes Cluster構築は、以下を参照してやってみましょう。

- [Google Cloud Platformの申し込み](https://cloud.google.com/?hl=ja)
- [Guestbook構築チュートリアル](https://cloud.google.com/container-engine/docs/tutorials/guestbook?hl=ja)

# 2.Rancher2.0 Serverの構築

## 1. Compute Engineから「VMインスタンス」を選択します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/eded18f5-f0c7-144d-606f-b076a45465ea.png)

## 2.「インスタンスを作成」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/6347b9ef-462d-b008-bbde-a7df58dfff91.png)

## 3. 以下の内容でインスタンスを作成します。

設定を入力後、「作成」ボタンをクリックします。

| 項目       |       入力概要|
|:-----------------|:-----------------|
| 名前|rancher-server|
| ゾーン|asia-northeast1-c|
| ブートディスク|Ubuntu 16.04 LTS|
| ディスクサイズ|100GB|
| ファイアウォール|「HTTPトラフィックを許可する」と「HTTPSトラフィックを許可する」にチェックを入れます。|

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/49ba483e-114b-0934-fd81-2399e83ef187.png)

## 4. 作成したインスタンスにSSH接続します。

「ブラウザウィンドウで開く」を選択します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/5f3e5516-a041-a0cb-f66f-7472757e2883.png)

## 5. rootのパスワードを設定します。

```lang:コマンド
$ sudo passwd root
```

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/a059e992-74ac-689e-914f-3cfd0e5d9dff.png)

## 6. Dockerをインストールします。

```lang:コマンド
$ curl https://releases.rancher.com/install-docker/1.12.6.sh | sh
```
![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/2597b92c-611b-e36b-432b-b17ef871d074.png)

## 7. Rancher2.0 Serverをインストールします。

```lang:コマンド
$ sudo docker run -d --restart=unless-stopped -p 8080:8080 rancher/server:preview
```

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/eed9b923-2063-76ae-2c3d-50f8330684a2.png)

## 8. ブラウザでRancher2.0 Serverの管理画面にアクセスします。

http://インスタンスの外部IP:8080/

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/ae12761b-c107-ee67-0709-4ca895106243.png)

# 3. Rancher2.0 ServerにGKE kubernetes clustersをインポート

## 1. Welcome to Rancher! の「Got It」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/9051e991-23ff-9ca6-d1be-3fddd6ed8801.png)

## 2. Use existing Kubernetesの「Select」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/1f74c328-d737-6a6b-e709-c4ca72542c31.png)

## 3. 「Save」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/af60ff97-f91c-c912-7346-0f80e09aadd1.png)

## 4. 表示されているkubectlコマンドをコピーして、GKE K8Sクラスタで実行します。

a.kubectlコマンドをコピーします。
b.Google Cloud SDK Shellでコピーしたkubectlコマンドを実行します。
c.「Close」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/41e5765f-7317-cfa8-436a-dff14554a9c8.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/a630edd8-a0d5-026d-5028-8e5bf72b106e.png)

## 5. GKEのK8S Clusterがインポートできていることを確認します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/3423747f-613d-7731-82e8-dd37f251eb18.png)

## 6. 上部メニューの「Containers」を選択すると、クラスタ上のコンテナーを確認できます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/21332685-2cf0-fbd1-9cdd-3c1d48e6da20.png)

## 7. 上部メニューの「Advanced」を選択して、「Launch Dashboard」をクリックするとkubernetes dashboardが表示されます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/3692fc4c-3915-fce2-f022-01ad2349ae9d.png)

## 8. Rancher Server側からもkubernetes dashboardを起動できます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/d09ee1fb-8c0a-0313-260c-b106492a6eec.png)

## 9.「Launch kubectl」をクリックするとkubectl shellを起動できます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/b2c37f8b-3247-df04-656e-647e5f87c145.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/65c01e0b-a887-efef-35a3-fd355d948576.png)

Rancher2.0では、簡単にGKEをはじめとする既存のKubernetes Clusterをインポートして管理することができます。

# Rancher 2.0 Architecture

Rancher2.0とGKE Kubernetes Clusterをインポートした状態をアーキテクチャから見てみるとこのような形になります。
詳細は、[Rancher Technical Architecture](https://cdn2.hubspot.net/hubfs/468859/Whitepapers/Rancher%202.0%20Technical%20Architecture%20-%20Sept%202017.pdf)を参照してみましょう。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/d7ab478b-7367-693d-0c31-46d0150ae772.png)

# Document of Rancher2.0

Rancher 2.0に関する情報は以下となります。（2017年10月時点）

## Press Release

- [Rancher Labs](https://rancher.com/announcing-rancher-2-0/)
- [Rancher Labs Japan](https://prtimes.jp/main/html/rd/p/000000003.000027827.html)

## Rancher 2.0 Special Site

- [Rancher 2.0 特設サイト](https://rancher.com/rancher2-0/)
- [DEEP DIVE AND DEMO](https://www.youtube.com/watch?v=cATqiXBZ8MY&feature=youtu.be)
- [TECHNICAL ARCHITECTURE](https://cdn2.hubspot.net/hubfs/468859/Whitepapers/Rancher%202.0%20Technical%20Architecture%20-%20Sept%202017.pdf)

# Others

インポートしたGKE Kubernetes ClusterにRancherのカタログ機能からいくつかのアプリをデプロイしてみましたが、コンテナーが起動しなかったりしました。GAでは改善されていることを期待します。