3台のRaspberry Pi 4で構築したKubernetesクラスターに、アプリやリソースをGUI上で管理できるKubernetes Dashboardをインストールしました。
Kubernetes Dashboardは、KubernetesをGUIで管理できるWebアプリです。動作中のアプリやリソースの状態を確認したり、新しいアプリをデプロイしたりすることができます。
今回は、 Raspberry Pi 4で構築したKubernetesクラスター にインストールしてみました。
作業手順
次のような手順で作業を進めます。
- Kubernetes Dashboardをインストール
- Kubernetes Metrics Serverをインストール
- ログイン用トークンを作成
- https通信のための証明書を作成し、設定
Kubernetes Dashboardをインストール
Kubernetes Dashboardのデプロイ用マニフェストをダウンロードします。
1 | $ wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml |
前回、L2ロードバランサーであるMetalLBをインストールしました。Kubernetes DashboardをMetalLB経由でアクセスするように、マニフェストに type: LoadBalancer
を追加します。
1 | $ vi recommended.yaml |
下記の先頭が +
で始まっている行を追加します。
1 | kind: Service |
修正しましたら、デプロイします。
1 | $ kubectl apply -f recommended.yaml |
Kubernetes Metrics Serverをインストール
Kubernetes Metrics Serverのデプロイ用マニフェストをダウンロードし、修正を行います。
1 | $ wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.7/components.yaml |
修正は2箇所です。
- コンテナの実行時オプションの追加
--kubelet-insecure-tls
--kubelet-preferred-address-types=InternalDNS,InternalIP,ExternalDNS,ExternalIP,Hostname
- コンテナイメージのアーキテクチャの変更
amd64
⇒arm64
1 | containers: |
修正しましたら、デプロイします。
1 | $ kubectl apply -f components.yaml |
ログイン用トークンを作成
Kubernetes Dashboardにログインするときに使う、admin-userのトークンを作成します。
以下のようなマニフェストを作成して、適用します。
1 | $ vi admin-user.yaml |
1 | apiVersion: v1 |
1 | $ kubectl apply -f admin-user.yaml |
作成したトークンを表示するには、次のコマンドを実行します。
1 | $ kubectl describe secret -n kubernetes-dashboard $(kubectl get secret -n kubernetes-dashboard | grep admin-user | awk '{print $1}') | grep ^token: |
ログインする際に token:
以降に表示される、ランダムな文字列が必要になりますので、控えておきます。
https通信のための証明書については、別の記事にまとめます。
いったん、ここまでで接続を確認してみましょう。
Kubernetes Dashboardの CLUSTER-IP
を調べます。
1 | $ kubectl get service -n kubernetes-dashboard |
上記の場合なら https://192.168.1.250/
にアクセスします。
証明書が適切に設定されていないため、次のような表示になります。
「詳細設定」をクリックして、アクセスすると、ログイン画面が表示されます。
先に控えたトークンを入力すると、Kubernetes Dashboardが表示されます。
最上部のフィルター画面で「すべてのネームスペース」を選ぶと、全リソースが表示されます。
以上です。