0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

kubesprayで構築したKubernetesクラスタのDashboardに簡単にアクセスする方法

Last updated at Posted at 2020-08-13

環境

ESXi6.7上のVM4台

  • vm

    • k8s-master cpu:2 mem:4GB HDD:30GB IP:192.168.123.180
    • k8s-node1 cpu:2 mem:4GB HDD:30GB IP:192.168.123.181
    • k8s-node2 cpu:2 mem:4GB HDD:30GB IP:192.168.123.182
    • k8s-node3 cpu:2 mem:4GB HDD:30GB IP:192.168.123.182
  • OS

    • Ubuntu20.04LTS
  • Kubernetes

    • kubespray 2.13.3 で構築、ノード名のみ変更、ほかデフォルト
    • バージョン:1.18.4

はじめに

Kubesprayで構築したKubernetes Dashboardに簡単にアクセスする方法です。
構築する環境によって異なると思いますが自分が勉強のために構築した環境だと公式の方法よりこの方法がアクセスしやすかったです。
ちなみにKubesprayのGetting startedのAccessing Kubernetes Dashboardには別の方法が記載されています。

手順

ダッシュボードアクセス用のサービスアカウントの作成

サービスアカウント:admin-userとクラスタロール:cluster-adminを作成し、バインディングします。
今回はデフォルトネームスペースに作成しています。

dashbord-adminuser.yaml

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: default
---
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: default

以下のコマンドで作成します

kubectl apply -f dashbord-adminuser.yaml

ダッシュボードのサービスのTypeをClusterIPからNodePortに変更

kubectl patch service kubernetes-dashboard -n kube-system -p '{"spec":{"type":"NodePort"}}'

ブラウザでアクセス

割り当てられたポートを確認します。

root@k8s-master:~# kubectl get svc kubernetes-dashboard -n kube-system
NAME                   TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)         AGE
kubernetes-dashboard   NodePort   10.233.40.27   <none>        443:31907/TCP   41h
root@k8s-master:~#

この場合、ポートは31907です。

トークンを取得します。

root@k8s-master:~# kubectl -n default describe secret $(kubectl -n default get secret | grep admin-user | awk '{print $1}')
Name:         admin-user-token-ckplg
Namespace:    default
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: admin-user
              kubernetes.io/service-account.uid: b7cec2e8-bd6f-4737-9775-d274e8acef08

Type:  kubernetes.io/service-account-token

Data
====
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IlZFcF9xLTdGektrS05wS040c29pak1GWVh2TUJ6QkJzTnpQeUN2blVGMU0ifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImFkbWluLXVzZXItdG9rZW4tY2twbGciLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiYWRtaW4tdXNlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImI3Y2VjMmU4LWJkNmYtNDczNy05Nzc1LWQyNzRlOGFjZWYwOCIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpkZWZhdWx0OmFkbWluLXVzZXIifQ.GBN2dwFSKD44qu6cV6w4GwoeEJ9UHpOvVq8wiG7tzptjbaexURJEFuEe-VF15h1VeLW7W5MrFrKh41Cf5pZCHZW6DbDUFZQRDYebKSEnDgr5fD_hEHH047Yg0poMB2WCntu8ImM0eIFArFARyVLa0yCN9Pfmht-BG8dqBw84ctFdLN79vIRHKQBId74VnZMWRC60siEmWGV0u2aHP9HUx3BGmNDfGmafzXwjDtE6bIZpWVJzE4L4ePKalx8WDz6UzZONpzDJBILQ2A6Kcf8KBM7aI_ijkvfTD-m8zauLDaNPZ6YfpYcew9WaJfGpmi3SQipBeG7upNeBq4RZASP7fw
ca.crt:     1025 bytes
namespace:  7 bytes
root@k8s-master:~#

以下のURLにアクセスし、トークンを入力すればアクセスできるようになります。

https://<WorkerノードのIP>:<割り当てられたポート>/

まとめ

とりあえずアクセスしたいときにはkubectl patchでNodePortに変更してノードのIPからアクセスするのが楽かも。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?