GKE + WordPressのチュートリアルをRancher2.0 Technical Previewから覗いてみた

これまで、Rancher2.0 Technical Preview版でGKE、AKS、RKE、IBM Cloud k8s等のk8sクラスタをインポートをする記事を投稿してきました。

- [Rancher 2.0 Technical PreviewでGKE Kubernetes Clusterをインポートしてみる](https://qiita.com/cyberblack28/items/bc01122a634150335b6f)
- [Rancher 2.0 Technical PreviewでBluemix Kubernetes Clusterをインポートしてみる](https://qiita.com/cyberblack28/items/ed8a9fa4dba25012f80b)
- [Rancher 2.0 Technical PreviewでAzure Container Service(AKS) Kubernetes Clusterをインポートしてみる](https://qiita.com/cyberblack28/items/f6656a46c08d982ac460)
- [Rancher Kubernetes Engine(RKE) & Rancher 2.0 Technical Preview on Fujitsu K5](https://qiita.com/cyberblack28/items/8f14436a0dd92d8d87f9)

今回は、インポート後を中心に見ていきたいと思います。

まず、Google Cloud Platform(以降GCP) 公式のチュートリアルに沿って、GKE上にk8sクラスタを構築してWordPressをデプロイします。
このチュートリアルは、ただWordPressをデプロイして終わるのではなく、WordPressやMySQLデータベースをGCEのDiskに構築して、Persistent Diskとします。ノードやWordPress、MySQLコンテナーを削除してもデータベース情報が消えることなく、ノードやWordPress、MySQLコンテナーを自動復旧する仕組みになっています。

Rancher2.0でその状況をグラフィカルに覗いてみたいと思います。

# GKE + WordPressのチュートリアルの実施

## 1.GCPの申し込み

GCPに申し込むと、1年間$300無料で利用できます。

- [GCP無料トライアル](https://cloud.google.com/free/?hl=ja)

## 2.Google Cloud SDK Shellのインストール

チュートリアルでは、Google Cloud SDK Shellを利用してCLI操作となりますのでインストールします。

- [Google Cloud SDK Shell](https://cloud.google.com/sdk/)

## 3.チュートリアルの実施

チュートリアルに沿って、GKE上にk8sクラスタを作成して、GCE DiskをPersistent Diskにして、WordPressをデプロイします。

- [Using Persistent Disks with WordPress and MySQL](https://cloud.google.com/kubernetes-engine/docs/tutorials/persistent-disk)

# Rancher2.0 Serverの構築とGKE GKE Kubernetes Clusterのインポート

こちらについては、以前の投稿記事に沿って構築できます。

- [Rancher 2.0 Technical PreviewでGKE Kubernetes Clusterをインポートしてみる](https://qiita.com/cyberblack28/items/bc01122a634150335b6f)

# コンテナーの動きを覗いてみる

![screencapture-35-189-145-201-8080-env-1a5-hosts-1513866248809.png](https://qiita-image-store.s3.amazonaws.com/0/61606/7a575fa9-8200-3d75-84af-f873cc423c79.png)

MySQLのコンテナーを削除してみます。

```コマンド
kubectl delete pod -l app=mysql
```

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/512501d3-c134-d2c0-9b9c-6d3cfaeb7103.png)

ノードが変わっています。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/cf2e62b5-0bc9-f454-235e-4a84a6033995.png)

WordPressのコンテナーを削除してみます。

```コマンド
kubectl delete pod -l app=wordpress
```

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/f29c2ed4-2b6c-b569-3144-15cad25e4e78.png)

ノードが変わっています。!

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/887d434e-add9-c89e-1adb-12532ad96508.png)

WordPressのページ内容は保持されています。

![screencapture-35-194-105-187-1513868695920.png](https://qiita-image-store.s3.amazonaws.com/0/61606/44a0c3ee-1ea3-1e0d-0564-f9494dc6200c.png)

# ノードの動きを覗いてみる

GCPのダッシュボードからノードを削除してみます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/15507a01-8f73-a18a-0510-c9d070c80737.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/84efb228-11a1-78ee-a469-09ca3d0658cc.png)

新たにノードが自動的構築されて、WordPressとMySQLコンテナーも作られて、元に戻ることがわかります。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/61606/05a39c97-db55-a844-332c-9ba7cc5231b0.png)

ディスクがノード側に外付けされていて、そこにWordPressとMySQLに必要となるPersistent Dataとして保存されているため、ノードとコンテナーが削除されても自動復旧後にそのディスクを読みに行くためWordPressのページ内容に変わりはありません。

WordPressのページ内容は保持されています。

![screencapture-35-194-105-187-1513868695920.png](https://qiita-image-store.s3.amazonaws.com/0/61606/44a0c3ee-1ea3-1e0d-0564-f9494dc6200c.png)

このチュートリアルは、シングルコンテナーのため、ノードとコンテナーが構築中の間はページにアクセスできないので、この辺はコンテナー数を増やして冗長構成等を検討する必要がありますね。

Rancher2.0 Technical Preview版でGKEのkubernetesクラスタをインポートして、可視化されたノードやコンテナーを覗いてみました。
kubernetes dashboardでも可能ですが、Rancherもグラフィカルな感じでkubernetesクラスタの状況をイメージしやすいと思います。

GCP、GKE、kubernetes、Rancher2.0を試してみたい方は是非！