2
1

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.

Kubernetes Dashboard Install

Posted at

はじめに

Kubernetes Dashboard は、Webベースの Kubernetes User Interface です。Dashboard を使用して、マニフェストファイルを Kubernetes にDeployや、クラスタリソースの管理を行えます。Oracle Cloud で提供されている Kubernetes マネージドサービス OKE を使って、Kubernetes Dashboard の構成方法を確認していきましょう。OKE を使っていますが、他の Kubernetes クラスタでも同様の操作で大丈夫だと思います。

次の Document を参考にしています。
https://kubernetes.io/ja/docs/tasks/access-application-cluster/web-ui-dashboard/
https://github.com/kubernetes/dashboard

Dashboard Install

Namespace 確認

[opc@bastion ~]$ kubectl get ns -o wide
NAME              STATUS   AGE
default           Active   11h
kube-node-lease   Active   11h
kube-public       Active   11h
kube-system       Active   11h

Kubernetes Dashboard を Deploy します。namespace : kubernetes-dashboard が作成され、Service ClusterIP など必要なものが一式構成されます。

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

実行例

[opc@bastion ~]$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/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

Namespace の確認です。kubernetes-dashboard が作成されています。

[opc@bastion ~]$ kubectl get ns -o wide
NAME                   STATUS   AGE
default                Active   11h
kube-node-lease        Active   11h
kube-public            Active   11h
kube-system            Active   11h
kubernetes-dashboard   Active   40s

Kubernetes Dashboard に必要なユーザー(ServiceAccount) を作成します。今回の手順では、cluster-admin 権限を持ったユーザーを作成します。
※ かなり高い権限を持たせています。商用環境で適用するにはセキュリティリスクとなる可能性があります

cat << 'EOF' > ~/workdir/kubernetes-dashboard-admin-user.yaml
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
EOF

apply

kubectl apply -f ~/workdir/kubernetes-dashboard-admin-user.yaml

Kubernetes Dashboard にアクセスするために、Token を取得します。

kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')

実行例
一番下の token をコピーしておきましょう

$ kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
Name:         admin-user-token-x69v9
Namespace:    kubernetes-dashboard
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: admin-user
              kubernetes.io/service-account.uid: 85ae26d6-f7d8-42da-99f3-b5f1ce31a38c

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1289 bytes
namespace:  20 bytes
token:      <ここにTokenが表示される>

自分の操作しているコンピューターに Install されている kubectl から、次のコマンドを実行します。これで、localhost のアクセスが Proxy されて、外部の Kubernetes へアクセスされます。

kubectl proxy

次のURLを実行すると、ログイン画面が開かれます。
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login

コピーしたトークンを貼り付けて、サインインします。

1595080968848.png

Metrics Server Install

Kubernetes Dashboard にアクセスすることが出来ました。Deployment や その配下の Pod を Web ベースに確認が出来ます。ただ現段階では、Pod の CPU使用率やメモリーは表示されていません。これを表示するためには、Kubernetes Metrics Server を Install する必要があります。

1595078810509.png

Metrics Server を Install します。ネームスペース kube-system 配下に作成されます

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml

実行例

$ kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml
clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created
clusterrolebinding.rbac.authorization.k8s.io/metrics-server:system:auth-delegator created
rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created
apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created
serviceaccount/metrics-server created
deployment.apps/metrics-server created
service/metrics-server created
clusterrole.rbac.authorization.k8s.io/system:metrics-server created
clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created

Metrics Server を導入した結果、リソース使用率が取得されて、表示されるようになりました

1595079287349.png

参考URL

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?