チュートリアル: Kubernetes ダッシュボード (ウェブ UI) のデプロイ - Amazon EKS

チュートリアル: Kubernetes ダッシュボード (ウェブ UI) のデプロイ

このチュートリアルでは、CPU およびメモリメトリクスを備えた Amazon EKS クラスターに、Kubernetes ダッシュボード をデプロイする手順について説明します。クラスターを表示および管理するダッシュボードに安全に接続できる Amazon EKS 管理者サービスアカウントの作成にも役立ちます。ダッシュボードを使用しているときに問題が発生した場合は、プロジェクトの GitHub リポジトリでイシューまたはプルリクエストを作成できます。

前提条件

このチュートリアルでは、次のことを前提としています。

ステップ 1: Kubernetes ダッシュボードのデプロイ

クラスターのバージョンのコマンドを使用して、ダッシュボードマニフェストをクラスターに適用します。

  • バージョン 1.22

    使用可能なバージョンの一部の機能は、この Kubernetes バージョンでは正しく動作しない可能性があります。詳細については、GitHub の「Releases」(リリース) を参照してください。

  • バージョン 1.20 および 1.21

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml
  • バージョン 1.19

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.5/aio/deploy/recommended.yaml

出力例を次に示します。

namespace/kubernetes-dashboard created serviceaccount/kubernetes-dashboard created service/kubernetes-dashboard created secret/kubernetes-dashboard-certs created secret/kubernetes-dashboard-csrf created secret/kubernetes-dashboard-key-holder created configmap/kubernetes-dashboard-settings created role.rbac.authorization.k8s.io/kubernetes-dashboard created clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created deployment.apps/kubernetes-dashboard created service/dashboard-metrics-scraper created deployment.apps/dashboard-metrics-scraper created

ステップ 2: eks-admin サービスアカウントおよびクラスターロールバインディングの作成

デフォルトでは、Kubernetes ダッシュボードユーザーのアクセス許可は制限されています。このセクションでは、管理者レベルのアクセス権限を使用してダッシュボードに安全に接続するために使用できる、eks-admin サービスアカウントおよびクラスターロールバインディングを作成します。詳細については、Kubernetes ドキュメントの「サービスアカウントの管理」を参照してください。

eks-admin サービスアカウントおよびクラスターロールバインディングを作成するには

重要

この手順で作成された、この例のサービスアカウントにはクラスターの完全な cluster-admin (スーパーユーザー) 権限があります。詳細については、Kubernetes ドキュメントの「RBAC 認証の使用」を参照してください。

  1. 次のコマンドを実行して、次のテキストを使用して eks-admin-service-account.yaml という名前のファイルを作成します。このマニフェストでは、サービスアカウントと、eks-admin という名前のクラスターロールバインディングを定義します。

    cat >eks-admin-service-account.yaml <<EOF apiVersion: v1 kind: ServiceAccount metadata: name: eks-admin namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: eks-admin roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: eks-admin namespace: kube-system EOF
  2. サービスアカウントおよびクラスターロールバインディングをクラスターに適用する。

    kubectl apply -f eks-admin-service-account.yaml

    出力例を次に示します。

    serviceaccount "eks-admin" created clusterrolebinding.rbac.authorization.k8s.io "eks-admin" created

ステップ 3: ダッシュボードに接続

Kubernetes ダッシュボードがクラスターにデプロイされ、クラスターの表示とコントロールに使用できる管理者サービスアカウントができたので、そのサービスアカウントを使用してダッシュボードに接続できます。

Kubernetes ダッシュボードに接続するには

  1. eks-admin サービスアカウントの認証トークンを取得します。

    kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep eks-admin | awk '{print $1}')

    出力例を次に示します。

    Name: eks-admin-token-b5zv4 Namespace: kube-system Labels: <none> Annotations: kubernetes.io/service-account.name=eks-admin kubernetes.io/service-account.uid=bcfe66ac-39be-11e8-97e8-026dce96b6e8 Type: kubernetes.io/service-account-token Data ==== ca.crt: 1025 bytes namespace: 11 bytes token: authentication-token

    出力から authentication-token の値をコピーします。後のステップで、このトークンを使用してダッシュボードに接続します。

  2. kubectl proxy を開始します。

    kubectl proxy
  3. ウェブブラウザで以下のリンクを開いて、ダッシュボードエンドポイントにアクセスします。http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#!/login

  4. [Token] (トークン) を選択して、前のコマンドの authentication-token 出力を [Token] (トークン) フィールドに貼り付け、[SIGN IN] (サインイン) を選択します。

    サインインすると、ウェブブラウザにダッシュボードが表示されます。

    
                        Kubernetes ダッシュボード

    ダッシュボードの使用方法の詳細については、Kubernetes ドキュメントの「Deploy and Access the Kubernetes Dashboard」(Kubernetes ダッシュボードのデプロイとアクセス) を参照してください。