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

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

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


            Kubernetes ダッシュボード

Prerequisites

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

ステップ 2: Kubernetes ダッシュボードをデプロイするには

クラスターがあるリージョンに対応するオプションの手順を完了します。

  • 中国北京および中国寧夏以外のすべてのリージョン

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.5/aio/deploy/recommended.yaml
  • 中国 (北京と寧夏)

    1. 次のコマンドを使用して、Kubernetes ダッシュボードマニフェストをダウンロードします。

      curl -o recommended.yaml https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.5/aio/deploy/recommended.yaml
    2. 次の手順を使用して、マニフェストファイルを編集します。

      1. ダウンロードしたマニフェストファイルを表示し、イメージの名前をメモします。以下のコマンドを使用して、イメージをローカルにダウンロードします。

        docker pull image:<tag>
      2. 以下のコマンドを使用して、中国の Amazon Elastic Container Registry リポジトリにプッシュするイメージをタグ付けします。

        docker tag image:<tag> <aws_account_id>.dkr.ecr.<cn-north-1>.amazonaws.com/image:<tag>
      3. 以下のコマンドを使用して、中国の Amazon ECR リポジトリにイメージをプッシュします。

        docker push image:<tag> <aws_account_id>.dkr.ecr.<cn-north-1>.amazonaws.com/image:<tag>
      4. リージョンの Amazon ECR イメージ URL を参照する Kubernetes マニフェストファイルを更新します。

    3. 次のコマンドを使用して、クラスターにマニフェストを適用します。

      kubectl apply -f 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

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

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

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

重要

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

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

    apiVersion: v1 kind: ServiceAccount metadata: name: eks-admin namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 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
  2. サービスアカウントおよびクラスターロールバインディングをクラスターに適用する。

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

    出力:

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

ステップ 4: ダッシュボードに接続する

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

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

  1. eks-admin サービスアカウントの認証トークンを取得します。出力から <authentication_token> の値をコピーします。このトークンを使用してダッシュボードに接続します。

    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>
  2. kubectl proxy の開始

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

  4. [トークン] を選択して、前のコマンドの <authentication_token> 出力を [トークン] フィールドに貼り付け、[サインイン] を選択します。

    
                        Kubernetes トークン認証
    注記

    CPU とメモリメトリクスがダッシュボードに表示されるまでに数分かかることがあります。

ステップ 5: 次のステップ

Kubernetes ダッシュボードに接続した後、eks-admin サービスアカウントを使用してクラスターを表示および管理できます。ダッシュボードの使用の詳細については、GitHub のプロジェクトドキュメントを参照してください。