Kubernetes Dashboard の管理

KubernetesKubernetesBeginner
オンラインで実践に進む

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

Kubernetes Dashboard は、Kubernetes クラスタの管理と監視を簡素化するウェブベースのユーザーインターフェイスです。これは、アプリケーションの展開と管理、クラスタ リソースの表示と分析を行うための直感的な方法を提供します。この実験では、Kubernetes Dashboard の展開とアクセス方法を案内します。

これは Guided Lab です。学習と実践を支援するためのステップバイステップの指示を提供します。各ステップを完了し、実践的な経験を積むために、指示に注意深く従ってください。過去のデータによると、この 初級 レベルの実験の完了率は 96%です。学習者から 95% の好評価を得ています。

Kubernetes クラスタを起動する

Kubernetes Dashboard を展開する前に、クラスタが稼働していることを確認します。この実験では Minikube を使用します。

  1. ターミナルを開き、プロジェクト ディレクトリに移動します。

    cd ~/project
  2. Minikube クラスタを起動します。

    minikube start

    Minikube はローカルの Kubernetes クラスタを作成し、Dashboard のような機能をテストしやすくします。セットアップには数分かかる場合があります。

  3. Minikube の状態を確認して、稼働していることを確認します。

    minikube status

    クラスタが稼働していない場合は、minikube delete を実行してから minikube start で再起動します。

Kubernetes Dashboard を展開する

クラスタにはデフォルトで Kubernetes Dashboard は含まれていません。公式の展開用 YAML ファイルを使用して展開します。

  1. 次のコマンドを実行して Dashboard を展開します。

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

    このコマンドは、Deployment、Service、および Role-Based Access Control (RBAC) 設定を含む、Dashboard に必要なすべてのリソースを作成します。

  2. Dashboard が稼働していることを確認します。

    kubectl get pods -n kubernetes-dashboard

    名前が kubernetes-dashboard のポッドを探し、その状態が Running であることを確認します。

  3. Dashboard の名前空間を確認します。

    kubectl get ns | grep kubernetes-dashboard

    kubernetes-dashboard という名前空間が存在する必要があります。

サービス アカウントとロール バインディングを作成する

デフォルトでは、Kubernetes Dashboard はアクセスを制限します。管理者特権でログインするには、サービス アカウントを作成してクラスタ ロールにバインドする必要があります。

  1. dashboard-admin.yaml という名前のファイルを作成します。

    nano ~/project/dashboard-admin.yaml
  2. 次の内容をファイルに追加します。

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: admin-user
    namespace: kubernetes-dashboard

このファイルは、サービス アカウント admin-user を定義し、クラスタ全体に管理者特権を付与します。

ファイルを保存するには、Ctrl+XY、そして Enter を押します。

  1. 構成を適用します。

    kubectl apply -f dashboard-admin.yaml
  2. サービス アカウントとロール バインディングを確認します。

    kubectl get sa -n kubernetes-dashboard

    admin-user サービス アカウントが表示されるはずです。

    kubectl get clusterrolebinding

    admin-user クラスタ ロール バインディングが表示されるはずです。

Kubernetes Dashboard にアクセスする

今、Dashboard が稼働し、権限が構成されたので、ブラウザを使ってアクセスしましょう。

  1. ログイン トークンを生成します。

    kubectl -n kubernetes-dashboard create token admin-user

    生成されたトークンをコピーします。これをログインに使用します。

  2. Dashboard Service を編集して、NodePort で公開します。

    kubectl edit service -n kubernetes-dashboard kubernetes-dashboard

    spec の下の type フィールドを見つけ、その値を NodePort に変更します。保存して終了します。

Editing Dashboard Service NodePort
  1. Dashboard に割り当てられた NodePort を見つけます。

    kubectl get service -n kubernetes-dashboard
    NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)         AGE
    dashboard-metrics-scraper   ClusterIP   10.104.164.172   <none>        8000/TCP        20m
    kubernetes-dashboard        NodePort    10.108.222.153   <none>        443:30587/TCP   20m

    PORT(S) 列の下に表示されるポート番号(例:30587)をメモします。これが Dashboard にアクセスするために使用するポートです。

  2. ノードの IP アドレスを取得します。

    kubectl get node -o wide
    NAME       STATUS   ROLES           AGE   VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
    minikube   Ready    control-plane   35m   v1.26.1   192.168.58.2   <none>        Ubuntu 20.04.5 LTS   5.15.0-56-generic   docker://20.10.23

    INTERNAL-IP 列がノードの IP アドレスを提供します。

  3. デスクトップの Firefox ブラウザを開き、次の URL に移動します。

    https://<node-ip>:<node-port>

    <node-ip> をノードの IP アドレスに置き換え、<node-port> を手順 3 のポートに置き換えます。

Firefox browser Kubernetes Dashboard
  1. セキュリティ警告が表示された場合、「高度な設定」を選択してから「リスクを承認して続行」を選択して進みます。
Security warning proceed screen
  1. ログイン画面で、トークン オプションを選択し、手順 1 のトークンを貼り付け(右クリック)、「サインイン」をクリックします。
Kubernetes Dashboard login page

これで、Kubernetes Dashboard にログインし、クラスタ リソースを探索し、ワークロードを管理できるようになります。

Kubernetes Dashboard interface

まとめ

この実験では、以下のことを学びました。

  1. ローカル クラスタに Kubernetes Dashboard を展開する方法。
  2. 管理者アクセス用のサービス アカウントを作成し、クラスタ ロールにバインドする方法。
  3. NodePort サービスを使用してブラウザから Dashboard にアクセスする方法。

Kubernetes Dashboard を使えば、アプリケーションを視覚的に管理し、リソースを監視し、クラスタの構成を調べることができます。このツールは、特にコマンド ライン ワークフローから移行している初心者にとって、Kubernetes の操作を簡素化します。Kubernetes 環境を最大限活用するために、その機能を引き続き探求してください!