k8s : GKEによるKubernetesセットアップ(クラスタ作成まで)〜無料枠〜

無料枠を使って、GKEによるKubernetesのセットアップを行っていきます。
[Google Cloud Platform の無料枠
](https://cloud.google.com/free/)

#セットアップ
####Google Cloud SDK(Mac) インストール
参考 : https://cloud.google.com/sdk/docs/quickstart-mac-os-x

```bash:バージョン確認
$ python -V
Python 2.7.10
```

```bash:マシン（ハードウェア）のタイプを表示
$ uname -m
x86_64 //x86_64の場合は、Mac OS X（x86_64）をダウンロード
```

```bash:gcloudがインストールされているか確認
$ gcloud --version
Google Cloud SDK 161.0.0
bq 2.0.24
core 2017.06.26
gcloud 
gsutil 4.26
kubectl 
```

**Tips**

```
gcloud components list : コンポーネント確認
```

```
gcloud components update : コンポーネントアップデート
```

###kubectlのアップデート
Kubernetesの操作については、kubectlコマンドで操作するのでkubectlコンポーネントをアップデートします。

```
$ gcloud components update kubectl

You have specified individual components to update.  If you are trying
 to install new components, use:
  $ gcloud components install kubectl

~中略~

Update done!
```

###認証
```
$ gcloud auth login
```

###gcloud のデフォルト値を設定
```bash:手順
$gcloud config set project [プロジェクト名]
$gcloud config set compute/zone [ゾーン名]
$gcloud config set compute/region [リージョン名]
$gcloud config list
```

今回は下記のような感じで作成してみます。
[プロジェクト名] : kubernetes-test
[リージョン名] : us-west1-a
[ゾーン名] : us-west1


```bash:[プロジェクト名]
$ gcloud config set project kubernetes-test-213018
```

```bash:利用リージョンの確認&設定
$ gcloud compute regions list
NAME                     CPUS  DISKS_GB  ADDRESSES  RESERVED_ADDRESSES  STATUS  TURNDOWN_DATE
asia-east1               0/8   0/2048    0/8        0/1                 UP
asia-northeast1          0/8   0/2048    0/8        0/1                 UP
asia-south1              0/8   0/2048    0/8        0/1                 UP
asia-southeast1          0/8   0/2048    0/8        0/1                 UP
australia-southeast1     0/8   0/2048    0/8        0/1                 UP
europe-north1            0/8   0/2048    0/8        0/1                 UP
europe-west1             0/8   0/2048    0/8        0/1                 UP
europe-west2             0/8   0/2048    0/8        0/1                 UP
europe-west3             0/8   0/2048    0/8        0/1                 UP
europe-west4             0/8   0/2048    0/8        0/1                 UP
northamerica-northeast1  0/8   0/2048    0/8        0/1                 UP
southamerica-east1       0/8   0/2048    0/8        0/1                 UP
us-central1              0/8   0/2048    0/8        0/1                 UP
us-east1                 0/8   0/2048    0/8        0/1                 UP
us-east4                 0/8   0/2048    0/8        0/1                 UP
us-west1                 0/8   0/2048    0/8        0/1                 UP
us-west2                 0/8   0/2048    0/8        0/1                 UP

//ゾーン、リージョンのヒモ付は下記をご覧ください。
https://cloud.google.com/compute/docs/regions-zones/regions-zones?hl=ja

// ゾーン
$ gcloud config set compute/zone us-west1


// リージョン
$ gcloud config set compute/region us-west1-a

//
$ gcloud config list
[compute]
region = us-west1-a
zone = us-west1
[core]
account = xxxxxx
disable_usage_reporting = False
pass_credentials_to_gsutil = false
project =  kubernetes-test-213018

Your active configuration is: [default]
```

下記のようなプロジェクトが作成されます。
<img width="426" alt="スクリーンショット 2018-08-12 3.49.06.png" src="https://qiita-image-store.s3.amazonaws.com/0/122901/b83245ab-7ac7-5846-9822-d15169cb60cf.png">


---

では、クラスタを作成してみます。
参考 : https://blog.a-know.me/entry/2018/06/17/220222

### クラスタ作成 (Google Kubernetes Engine) 


下記のようなCLIで行っても、GUIで行ってもどちらでも大丈夫です。

```bash:サンプル
$ gcloud container clusters create test-cluster --zone us-west1-a --preemptible --machine-type=f1-micro --num-nodes=3 --disk-size=10

~中略~
kubeconfig entry generated for test-cluster.
NAME          LOCATION    MASTER_VERSION  MASTER_IP       MACHINE_TYPE  NODE_VERSION  NUM_NODES  STATUS
test-cluster  us-west1-a  1.9.7-gke.5     xxx.xxx.xxx.xxx  f1-micro      1.9.7-gke.5   3          RUNNING
```

<img width="1076" alt="スクリーンショット 2018-08-12 3.55.54.png" src="https://qiita-image-store.s3.amazonaws.com/0/122901/91377909-d39d-d990-6e10-04aae07ea758.png">

**3つのnodeがあると料金がかかるので、GUIでもCLIでも良いのでひとつにします。**
下記のようにnodeカウントが1になっていることを確認します。

```bash:note数確認
$ gcloud container clusters describe test-cluster --zone us-west1-a | grep currentNodeCount
currentNodeCount: 1

$ gcloud container clusters list
NAME          LOCATION    MASTER_VERSION  MASTER_IP       MACHINE_TYPE  NODE_VERSION  NUM_NODES  STATUS
test-cluster  us-west1-a  1.9.7-gke.5     35.230.112.218  f1-micro      1.9.7-gke.5   1          RUNNING
```
<img width="1036" alt="スクリーンショット 2018-08-12 4.25.42.png" src="https://qiita-image-store.s3.amazonaws.com/0/122901/c0e779f5-2dc3-c369-40ff-fafa459423e4.png">


以上です。
なぜか、CLIだとうまくいかないことが多いです。その場合は、GUIでも代わりはきくのでそちらでお願いします。