Alibaba CloudでRancher＋Kubernetesの環境構築(1)～Rancherサーバー構築編～

Alibaba CloudでRancher+Kubernetesの環境構築を行います。
まずは、Rancherサーバーの環境を構築していきます。

#Rancherサーバーの構築
以下の手順で、Rancherサーバーを構築します。
1.RancherOSのVHDイメージファイルのダウンロード
2.AlibabCloud OSSにダウンロードしたVHDイメージファイルをアップロード
3.アップロードしたVHDイメージファイルからカスタムイメージを作成
4.カスタムイメージからECSインスタンスを作成
5.インスタンス起動後の設定
6.Rancherへアクセス
##1.RancherOSのVHDイメージファイルのダウンロード
RancherOSをECSにインストールするために、[こちら](https://github.com/rancher/os/releases)からVHD形式のイメージファイル「rancheros-aliyun.vhd」をダウンロードします。
**Rancherのバージョン**は、**1.4.0**を利用しています。
<img width="564" alt="RancherOS.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/254932/7070e11c-ea29-d7b3-e40d-e99477987693.png">

##2.AlibabaCloud OSSにダウンロードしたVHDイメージファイルをアップロード
- OSSを有効化
OSSを既に有効化されている方は、この設定は不要のため読み飛ばしてください。
コンソールから「Object Storage Service」を選択すると、以下の画面が表示されます。
<img width="544" alt="OSS有効化.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/254932/d87f72ba-7850-761a-d5e1-40abc939ae8f.png">
チェックを2箇所付けて「今すぐ有効化」をクリックすると、OSSが有効化されます。
<img width="302" alt="OSS有効化2.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/254932/0dec663e-64c7-6484-08ef-1e498b40647c.png">

- バケットを作成
「バケット作成」をクリックして、バケットを作成します。
<img width="268" alt="OSSバケット作成.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/254932/67d90775-f7d8-c286-a21d-a06372aa8cb9.png">
必要事項を入力。
リージョンはECS環境と合わせる必要があるので、注意してください。
<img width="447" alt="OSSバケット作成2.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/254932/bedc1220-db4a-9378-833b-6108de588bcd.png">

バケットが作成されると、左側のメニューにバケット名が表示されます。

- ファイルをアップロード
作成したバケットを選択し、ファイルタブをクリック。
表示されている「アップロード」ボタンをクリックするとアップロード画面が表示されます。
<img width="526" alt="OSSファイルアップロード.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/254932/aa87f703-5ca7-8824-e081-029f3bb4bbc9.png">
アップロード画面
<img width="446" alt="OSSファイルアップロード4.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/254932/71317260-8cf4-4b13-cd1a-392f3780e658.png">
アップロード後
<img width="481" alt="OSSファイルアップロード3.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/254932/fb2b40e1-e73b-d322-af7e-dd2b5ac1568e.png">

##3.アップロードしたVHDイメージファイルからカスタムイメージを作成
- OSSにアップロードしたファイルのURLをコピーします
OSSのバケットの一覧に表示されている該当ファイル名をクリックするとこちらの画面が表示されます。
<img width="377" alt="OSSファイルURL.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/254932/50c76c53-1116-e36e-1d1f-f65586a9ffa5.png">

- ECSコンソールで左側メニューのスナップショット&イメージにある「イメージ」をクリック
- 右上にある「イメージのインポート」をクリック
この時にAZには注意してください。(OSSと同じAZに設定します)
<img width="1046" alt="カスタムイメージ作成.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/254932/b845a5ac-cf5c-5a1a-568f-2bca4e6556ba.png">

- イメージの構成を設定する
<img width="447" alt="OSSバケット作成2.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/254932/71863966-6bbc-c89e-a311-ac338c619c66.png">
**OSSにアクセスできるように、ECS公式サービスアカウントへのOSSアクセス許可が必要になります。**

- カスタムイメージ作成完了
ステータスが「利用可能」、進行度が100%になればカスタムイメージの作成は完了です
<img width="905" alt="カスタムイメージ作成完了.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/254932/85c114f7-13d5-39b1-ae33-4100b8a53488.png">


##4.カスタムイメージからECSインスタンスを作成
- ECSコンソール画面の左側メニューから「インスタンス」をクリック
- インスタンスを作成するAZを選択(Asia Pacific NE1 (Japan))
- 右上の「インスタンスを作成」をクリック
- インスタンスの料金やリージョンを確認
- インスタンスタイプを選択
- インスタンスイメージを選択
ここで先程作成したカスタムイメージを設定します。
<img width="632" alt="インスタンスイメージ.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/254932/4275f433-0e09-607e-3d86-7a079ca3fbd3.png">
- ネットワークなど残りの項目を設定してインスタンスを作成します

##5.インスタンス起動後の設定
インスタンス起動後、SSHなどでサーバーにアクセスしてください。
RancherOSのため、ユーザー名は「rancher」となります。
鍵はインスタンス作成時に設定したものを利用します。

RancherOSを使用する際に「8080」ポートを利用します。
セキュリティグループの「ルールの設定」から、8080ポートが利用できるように設定します。

SSHでアクセス後、以下のコマンドを実行してRancherの管理画面を実行させます。

```
sudo docker run -d --restart=always -p 8080:8080 rancher/server
```

##6.Rancherへアクセス
手順5まで完了したら、ブラウザでアクセスします。
URLは、「ECSのIPアドレス:8080」です。
アクセスすると、この様な画面が表示されます。
これでRancerサーバーの準備は完了です。
<img width="915" alt="Rancher1.PNG" src="https://qiita-image-store.s3.amazonaws.com/0/254932/96be002d-a544-fa4d-f2a6-fa43ca024590.png">

続きはこちらで
[Alibaba CloudでRancher＋Kubernetesの環境構築(2)～Kubernetes環境構築～](https://qiita.com/cube8080/items/9f8ff0d84cc430314ad3)

###参考サイト
https://www.alibabacloud.com/blog/running-rancheros-on-alibaba-cloud_328688