GKE - Google Kubernetes(K8s) Engine をコンソールだけで手っ取り早く体験してみる。

# 前提

以下の人向けの記事です。

* Google Cloud Platform 上でプロジェクトを持ってる。

* 次のコマンドを入力するとどうなるか知っている。

```
$ docker run -d -p 8080:80 nginx
```



# 目標その1

GKE のコンソールだけで手っ取り早く nginx コンテナを動かして、ブラウザからアクセスすると以下の画面が表示される。

![スクリーンショット 2019-08-23 15.48.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73493/1f6d0e70-fb3e-f582-51ac-de54291f73df.png)

## 手順

* Google Cloud Platform でプロジェクトを選択する。

* Google Kubernetes Engine メニューを選択する。


![スクリーンショット 2019-08-23 15.23.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73493/9b363c09-0c49-b8d7-69ef-cab6c4ef4cef.png)

* 「コンテナをデプロイ」ボタンを押す。

「クラスタを作成」、は自動でデフォルト値でやってくれます。

![スクリーンショット 2019-08-23 15.27.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73493/5b5f60a7-32f0-e92e-3e65-a9e301f595d1.png)

デフォルトで nginx:latest のイメージをデプロイするようになっているのでそのまま

* 「続行ボタン」を押す。

![スクリーンショット 2019-08-23 15.31.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73493/17d7a229-74a4-d170-2c26-16f76b29346d.png)

（デフォルト値が嫌いな人は適宜書き換えて）

* 「デプロイ」ボタンを押す。

作成中の画面が表示されます。ちょっと時間がかかるので、気長に待ちます。
完了すると、以下の画面になります。

![スクリーンショット 2019-08-23 15.42.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73493/30766b6e-64a2-81b6-c7e4-ea067ec2a376.png)

* 「公開」ボタンを押す。

![スクリーンショット 2019-08-23 15.44.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73493/9590ffd2-93a0-460d-e62f-d351b607f7f2.png)

（デフォルト値が嫌いな人は適宜書き換えて）

* 「公開」ボタンを押す。

作成中の画面が表示されます。ちょっと時間がかかるので、気長に待ちます。
完了すると、以下の画面になります。

![スクリーンショット 2019-08-23 15.47.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73493/669fc451-533f-77d8-c23d-3e4d9544aa36.png)

* 「外部エンドポイント」のリンクを押す

![スクリーンショット 2019-08-23 15.48.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73493/1f6d0e70-fb3e-f582-51ac-de54291f73df.png)

ほぼボタンを押すだけの手順で目標達成です。

## 何がおきてる？

* Kubernetes Engine のところには、クラスタ、ワークロード、サービスが作成されています。

![スクリーンショット 2019-08-23 15.54.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73493/923d4e58-ca66-d4d8-c213-2decfbee0abb.png)

![スクリーンショット 2019-08-23 15.54.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73493/81d8c407-a6c6-cfb2-7369-039fc37cd401.png)

![スクリーンショット 2019-08-23 15.54.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73493/05cd8b92-7bb7-4394-dd4e-56e8c2f27a3b.png)

* Kubernetes Engine のところだけでなく Compute Engine のところに、VM インスタンス、インスタンスグループ、インスタンステンプレート、ヘルスチェック、ディスクが作成されています。

![スクリーンショット 2019-08-23 15.58.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73493/94bac1d6-8d22-24c0-e856-94796fd5b4bd.png)

![スクリーンショット 2019-08-23 15.58.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73493/b748df43-789d-2cac-fa51-42b82a191fff.png)

![スクリーンショット 2019-08-23 15.58.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73493/7cea0b78-d3b7-5dac-72e4-2b37895b2e7e.png)

![スクリーンショット 2019-08-23 16.20.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73493/0d3f931a-7b49-84c1-6ee2-0cf3decf49ba.png)

![スクリーンショット 2019-08-23 16.30.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73493/79584646-a855-ed12-9cbf-8f514e33e2f4.png)


* ロードバランサが作成されています。（ネットワークサービス）

![スクリーンショット 2019-08-23 16.01.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73493/f954da78-75b6-2c28-55c7-e9d8be222686.png)

* 外部 IP アドレスが作成されています。（VPC ネットワーク）

![スクリーンショット 2019-08-23 16.04.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73493/6345e14e-cc9d-e661-4a04-1b70b67087a5.png)

## 消し方

![スクリーンショット 2019-08-23 15.54.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73493/923d4e58-ca66-d4d8-c213-2decfbee0abb.png)

これをゴミ箱にいれると、上全部綺麗に消えます。

# 目標その2

タイトルが Hello! というウェブページを nginx でホストするコンテナをデプロイして、ブラウザからアクセスすると以下の画面が表示される。

![スクリーンショット 2019-08-23 18.30.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73493/53d6d842-060a-65bd-2c67-7f46cc72dc56.png)

## 手法
イメージをアップロードする手と、リポジトリに Dockerfile を含む環境を入れてそこからイメージを作ってもらう手の 2 つがありますが、前者はコンソールでできないので後者でやります。

リポジトリは現在、Cloud Source Repositories, GitHub, Bitbucket が使えるようですので、Github でやります。

## 手順

* Github 上に以下のようなレポジトリを用意する。

![スクリーンショット 2019-08-23 18.08.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73493/1c435566-7dca-def5-a417-6ad36ec89580.png)

```index.html
<!DOCTYPE html><html lang=en><title>Hello!</title></html>
```

Dockerfile

```
FROM nginx
ADD index.html /usr/share/nginx/html/
```

* デプロイでこのレポジトリを指定

（いくつかの API を有効にするのと、Github との連携をする画面が出てくるはずです。スクショとれなくてすみません。）

![スクリーンショット 2019-08-23 18.21.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73493/92fbc046-312c-cf8b-65f4-3c793610046d.png)

* 後は目標1の手順と同じです。

![スクリーンショット 2019-08-23 18.30.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73493/53d6d842-060a-65bd-2c67-7f46cc72dc56.png)



# 終わりに

この記事を書いたモチベーションは、[Google さんの公式チュートリアル](https://cloud.google.com/kubernetes-engine/docs/quickstart?hl=ja)が Google Cloud Shell を使ってたので、コンソールの手順も紹介したくなったことです。