Rancher2.0 Tech Preview2 ～Create a RKE Cluster～

Rancher2.0 Tech Preview2の主要機能として追加された「Create a RKE Cluster」は、RKE(Rancher Kubernetes Engine)を利用して、AWS、Azure、DigitalOcean、Packet、vSphereに対してKubernetesクラスタを作成することができます。（※2018年2月現在）

Rancher2.0 Tech Preview2からAWS上にKubernetesクラスタを作成してみましょう。

Tech Preview2のインストールは[Rancher2.0 Tech Preview2について](https://qiita.com/cyberblack28/items/dcfef4319e160468f4be)の「Get Started with Rancher 2.0」を参考にしてください。

# Rancher2.0 Tech Preview2でAWS上にKubernetesクラスタを作成

1.Rancher2.0 Tech Preview2 Serverにログイン後に、「Add Cluster」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/af861b89-3704-55d0-1282-23bf1a3c36b6.png)

2.「Create a RKE Cluster」の「Select」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/f2d76916-93e2-1c7c-0eef-96713c189c4d.png)

3.nameに任意名を入力（今回はaws-k8s-clusterとします。）して、「Add a new cluster」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/a065d7d5-becd-c255-054e-a1f755ac31dc.png)

4.「Configure」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/f999328b-d9c6-7a9a-b15a-b147c5a78e90.png)

5.「Amazon EC2」を選択し、nameに任意名を入力（今回はaws-k8s-clusterとします。）し、Countは「3」、Regionは「ap-northeast-1」、Access keyとSecret keyはAWSのIMA Management Consoleでグループとユーザを作成し、そのユーザーのものを入力します。そして、「Next:Authenticate & select a network」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/3e2c6b3d-865e-d402-2206-c186db23151e.png)

6.vpcを選択して、「Next:Select a Security Group」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/6b1193ef-733d-dfc6-5832-13dd952778be.png)

7.「Next:Set Instance options」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/28b17964-f142-1256-fc0b-a39cf634f8b0.png)

8.「Create」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/d870bf2b-5d52-1c64-471f-89d610991087.png)

9.kubernetesの構成を作成します。最後に「Create」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/27dff2a0-6ed3-a4f0-3b7c-edc1061e25c3.png)

10.しばらくするとkubernetesクラスタ構築が完了します。

![screencapture-35-198-222-0-g-clusters-1517843931311.png](https://qiita-image-store.s3.amazonaws.com/0/61606/d6d0e117-decf-a704-e160-7927fc9a7e8b.png)

クラスタ名をクリックすると全体のリソース状況が可視化されます。

![screencapture-35-198-222-0-c-cluster-8p8bq-1517844232326.png](https://qiita-image-store.s3.amazonaws.com/0/61606/3f21e332-834f-f44c-6b74-784942e6ab1c.png)

11.上部メニュー「Nodes」を選択します。

AWS上に構築されたkubernetesクラスタの状況を確認できます。各クラスタ名をクリックするとリソース状況が可視化されます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/2a904414-ebf1-3c4f-193b-da033d08d9c7.png)

12.「KubeConfig File」ボタンをクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/b1381868-3403-8b2a-4d33-0e4901d25b05.png)

kubectlコマンドのconfigファイルをクリップボードにコピーできます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/01b49bda-8af8-7caf-3bb8-1d82d730f4db.png)

kubectlコマンドを実行できるクライアントをローカルまたはサーバで構築します。今回はGCP上にGCEのインスタンス（Ubuntu 16.04 LTS）を1台用意します。

```lang:コマンド
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl

$ chmod +x ./kubectl

$ sudo mv ./kubectl /usr/local/bin/kubectl

$ mkdir .kube

$ vim .kube/config
#クリップボードにコピーした内容をペーストして保存します。
:wq

$ kubectl get nodes
NAME               STATUS    ROLES         AGE       VERSION
aws-k8s-cluster1   Ready     etcd,master   26m       v1.8.5-rancher1
aws-k8s-cluster2   Ready     worker        23m       v1.8.5-rancher1
aws-k8s-cluster3   Ready     worker        25m       v1.8.5-rancher1
```

これで、kubectlコマンドでアプリケーションをデプロイすることが可能となります。

13.AWSのコンソールを確認します。

インスタンスが3台で来ていることが確認できます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/6e836e0a-4a5b-f8ca-c33d-a1a54144bb2d.png)

以上となりますが、AWS以外のAzure、DigitalOcean、Packet、vSphereも同様にRKEでkubernetesクラスタを構築できると思います。

# 参考資料

## RKE(Rancher Kubernetes Engine)
- [Announcing RKE, a Lightweight Kubernetes Installer](http://rancher.com/announcing-rke-lightweight-kubernetes-installer/)
- [An Introduction to Rancher Kubernetes Engine (RKE)](http://rancher.com/an-introduction-to-rke/)
- [軽量KubernetesインストーラRKEを発表](https://goo.gl/XdRZxr)
- [Rancher Kubernetes Engine（RKE）の紹介](https://goo.gl/CjRB4K)
- [RKEってなんじゃ？](http://tsukaman.hateblo.jp/entry/2017/12/01/111604)
- [RKEでオンプレKubernetesクラスタを作り、その上でOpenFaaSを動かす - その１](https://techlog.supersoftware.co.jp/2017/12/13/rke-k8s-openfaas-part1/)
- [RKE & Rancher2.0](https://www.slideshare.net/cyberblackvoom/rke-rancher-20)
- [Rancher Kubernetes Engine(RKE) & Rancher 2.0 Technical Preview on Fujitsu K5](https://qiita.com/cyberblack28/items/8f14436a0dd92d8d87f9)