Amazon EKS Starter: Docker on AWS EKS with Kubernetes 受けてみた③

##はじめに
本記事では、Udemy にて Stephane Maarek 氏 が提供している「[Amazon EKS Starter: Docker on AWS EKS with Kubernetes](https://www.udemy.com/amazon-eks-starter-kubernetes-on-aws/)」 について紹介していきます。

前回は、EKS で使われる主なサービスについて学んでいきました。今回は、 kubernetes Dashboard について紹介していきます。前回の記事のリンクは下記です。

[Amazon EKS Starter: Docker on AWS EKS with Kubernetes 受けてみた①](https://qiita.com/Yoshiyuki03/items/ec17a6960e202c61a07c)
[Amazon EKS Starter: Docker on AWS EKS with Kubernetes 受けてみた②](https://qiita.com/Yoshiyuki03/items/a2f5aa01906df1e996c6)

##Kubernetes Dashboard
本コースで利用する Kubernetes Dashboard については、下記のリンクを参照ください。本コースで利用する情報については、ここに全て用意されております。

- [General-purpose web UI for Kubernetes clusters](https://github.com/kubernetes/dashboard)

Kubernetes Dashboard は以下の特徴があります。

- 以下の情報について閲覧が可能
 - ワークロード 
 - ネームスペース
 - サービス
 - ノード・ストレージ
 - メトリクスの利用

- RBAC の許可に基づくコマンドの実行などが可能
- 以下の環境を利用したセキュリティ
 - HTTPS
 - Bearer トークンを使用したログイン 
 - RBAC を使用した UI コンポーネントへのアクセス確認


###Create service account and RBAC rule
今回は、YAML ファイルを使用して以下を作成してまいります。使用する YAML ファイル名は、「dashboard-account-rbac.yaml」です。

- Dashboard のためのサービスアカウント
- Dashboard に特権を与えるための複数のロール
- RBAC ロールにサービスアカウントをリンクさせるためのロール

ターミナルから、上記の YAML ファイルをアタッチします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321349/51f7c6c5-67b8-aed2-f43d-969e451e4b37.png)
「 kubectl.exe apply -f dashboard-account-rbac.yaml 」と入力して、 YAML ファイルのアタッチは完了です。

###Deploy Dashboard
次は、Dashboard をデプロイします。作成するリソースは全部で3となり、図で表すと以下となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321349/6eac519f-2d5c-0809-8002-b6c6b1b2176f.png)
作成するリソースとその内容

- サービス
 - ポート、URL、ユーザフェイス 
- デプロイ
 - ダッシュボードポート 
- ボリューム
 - 秘密証明書

YAML ファイルは、「deploy-dashboard.yaml」を参照ください。
ターミナルから、上記の YAML ファイルをアタッチします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321349/db7e5ce2-2b6d-02d9-0deb-d9f529e8bd1d.png)
「 kubectl.exe apply -f deploy-dashboard.yaml 」と入力して、 YAML ファイルのアタッチは完了です。
次に、「kubectl.exe get all --namespace kube-system --selector=k8s-app=kubernetes-dashboard」と入力します。
これで、サービス・デプロイ・ボリュームのリソースは作成完了しました。

###Deploy metrics Add-Ons
それでは、アドオンを作成してまいります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321349/04233296-613b-6c6f-6cf6-653c0468a5bf.png)
構成は図の様になります。そして、作成するのは以下の2つです

- InfluxDB：Heapster のデータを置くストレージ
- Heapster：Kuernetesのパフォーマンス情報を集約するコンポーネント

アドオン環境を作成するにあたり、以下の YAML ファイルを使います。

- 「deploy-influxdb.yaml」
- 「deploy-heapster.yaml」
- 「deploy-heapster-rbac.yaml」

それでは、ターミナルに移り、アドオン環境を作成していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321349/fd867196-e769-10f2-1b82-a61a9bf6983d.png)
上記の3つの YAML ファイルをデプロイしましょう。
「kubectl.exe apply -f deploy-[YAML ファイル名]」と入力することで、デプロイが完了します。
図の様に「created」がそれぞれ表示されれば、デプロイは無事完了です。

###Create admin account and explore dashboard

「admin-service-account.yaml」ファイルを使って、admin サービスアカウントを作成していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321349/fe6b03fa-3b4e-17dd-57e8-19a68ce30e90.png)
「kubectl.exe apply -f admin-service-account.yaml」と入力しましょう。
これでファイルのデプロイは完了です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321349/363e1f50-633e-a83e-e229-815eceb50095.png)
デプロイが完了したら、ターミナルの別ウィンドウを開いて「kubectl proxy」と入力します。
Kubernetes にアクセスする IP アドレスを指定します（今回は「127.0.0.1」を指定）。

ブラウザウィンドウから Kubernetes Dashboard へのサインイン画面を開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321349/7adc326e-ed8f-e5d7-c7eb-a5287c49e76f.png)
サインイン画面を開くと、Kubeconfig か、Token のどちらかを選択する必要が出てきます。Token を選択しますが、まだ Token が用意できていないので、再びターミナルに戻って作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321349/3ac41d7e-c613-b2c3-eb29-2bb255301081.png)
図のコマンドを実行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321349/7e745f29-22ad-d1ad-fcbb-657fee0300a3.png)
実行すると、 Token の key が作成されるので、そちらをコピーします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321349/68aba9ea-406a-64c2-23c4-abd1e6e42461.png)
コピーした key を「　Enter token 」に貼りつけて、サインインを実行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321349/0103d5d2-e1cb-6f76-4666-77cd28ad135d.png)
サインインが無事に完了すると、図の様に Kubernetes のページに入れます。

##おわりに
Kubernetes Dashboard のデプロイ方法についての紹介は以上です。
次回は、リソースのデプロイについて紹介していきます。