Amazon EKSのKubernetes ダッシュボードをデプロイする


はじめに

本記事はAWS環境におけるEKSクラスターのKubernetesダッシュボードをデプロイする手順について記載しています。

オンプレミスのKubernetesに比べて、EKSなどのマネージドサービスを初めて操作する場合は勝手が違います。本記事ではチュートリアル: Kubernetes ダッシュボード (ウェブ UI) のデプロイを基に解説します。

準備作業

Kubernetesクラスタを制御するためには、オンプレミスやクラウドに関わらずクライアント側にkubectlなどのインターフェイスが必要になります。

また、AWS環境におけるEKSのクラスターを制御する場合は、eksctl (Amazon EKS での Kubernetes クラスターの作成および管理用のシンプルなコマンドラインユーティリティ) もありますが、本記事では汎用性が高いkubectlを利用します。詳細はAWS マネジメントコンソール の使用開始を参照。

本記事の前提条件は以下になります。

  • 操作するローカルの端末(Mac)に、AWS コマンドラインインターフェイス(CLI)がインストールされていること
  • EKSでKubernetesが既に構築済

AWS CLI 認証情報の設定

AWSのリソースを操作するためには、AWSの認証情報の設定が必要です。

以下のコマンドを実行し、必要な認証情報を対話的に入力します。

$ aws configure

AWS Access Key ID [None]: hoge
AWS Secret Access Key [None]: hoge
Default region name [None]: ap-northeast-1
Default output format [None]: json

認証情報を設定後に再度aws configureコマンドを実行すると、先ほど設定した認証情報が表示されます。

AWS Access Key ID [****************hoge]: 
AWS Secret Access Key [****************hoge]: 
Default region name [ap-northeast-1]: 
Default output format [json]: 

kubectlのインストールと設定

kubectlもコマンドラインツールとして用意されています。

kubectlのバイナリとkubectlのハッシュ値が記載されたファイルをダウンロード します。
$ curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.17.7/2020-07-08/bin/darwin/amd64/kubectl

$ curl -o kubectl.sha256 https://amazon-eks.s3.us-west-2.amazonaws.com/1.17.7/2020-07-08/bin/darwin/amd64/kubectl.sha256

ダウンロードしたkubectlのバイナリとkubectlのハッシュ値が記載されたファイルを突合し、kubectlのバイナリの正真性が正しいことを確認します。以下はコマンドラインで突合する場合の例になります。

$ kubectl=`openssl sha1 -sha256 kubectl | awk '{print $2}'`
$ kubectl_sha256=`cat kubectl.sha256 | awk '{print $1}'`
$ if [ ${kubectl} = ${kubectl_sha256} ]; then  echo "true"; else echo "false";fi;
true

kubeconfigファイルの作成

kubectlを用いてKubernetesクラスターのMaster(AWSで言うEKS)と通信するためには、接続先クラスや認証情報等を記載したkubeconfigが必要です。

以下のコマンドを実行し、kubeconfigファイルを作成します。※<cluster_name>はクラスター名を指定
$ aws eks --region ap-northeast-1 update-kubeconfig --name <cluster_name>

ダッシュボードのデプロイ

以下のコマンドを実行し、proxyを起動します。
$ kubectl proxy

以下のコマンドを実行し、トークンを抽出します。
$ kubectl -n kube-system describe secret

ブラウザを起動し、ダッシュボードエンドポイントにアクセスします。

上記で抽出したトークンを入力し、「サインイン」をクリックします。

ダッシュボードにログインできます。

おわりに

初見の場合、公式のチュートリアルの内容が分かりずらいと感じたため、一連の作業についてまとめました。