본문 바로가기

Kubernetes(k8s)/k8s 대시보드

Kubernetes dashboard

1.        Kubernetes dashboard

 

         1.1.        정의

대시보드는 웹 기반 쿠버네티스 유저 인터페이스이다. 대시보드를 통해 컨테이너화

된 애플리케이션을 쿠버네티스 클러스터에 배포할 수 있고, 컨테이너화 된

애플리케이션을 트러블 슈팅 할 수 있으며, 클러스터 리소스들을 관리할 수 있다.

대시보드를 통해 클러스터에서 동작 중인 애플리케이션의 정보를 볼 수 있고,

개별적인 쿠버네티스 리소스들을(예를 들면 디플로이먼트, 잡, 데몬 셋 등)

생성하거나 수정할 수 있다.

 

예를 들면, 디플로이먼트를 스케일하거나, 롤링 업데이트를 초기화하거나, 파드를 재시작하거나 또는 배포 마법사를 이용해 새로운 애플리케이션을 배포 할 수 있다. 또한 대시보드는 클러스터 내 쿠버네티스 리소스들의 상태와 발생하는 모든 에러 정보를 제공한다.

 

 

         1.2.        설치 방법

 

1)     설정 파일 변경

[admin1@ubu22-01 ~ (kubernetes-admin@cluster.local:nginx)]$
vi kubespray/inventory/mycluster/group_vars/k8s_cluster/addons.yml
----------------------------------------------------------------------

...
# Kubernetes dashboard
# RBAC required. see docs/getting-started.md for access details.
dashboard_enabled:
true
# 주석을 풀어준다.
# Helm deployment
helm_enabled:
true

...

 

2)    변경 값 적용

[asd@ubu22-01 kubespray (kubernetes-admin@cluster.local:happy)]$ ansible-playbook -i inventory/mycluster/inventory.ini cluster.yml -b

PLAY RECAP ******************************************************************************************************************************************
localhost                  : ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0  
ubu22-01                   : ok=760  changed=42   unreachable=0    failed=0    skipped=1272 rescued=0    ignored=1  
ubu22-02                   : ok=498  changed=20   unreachable=0    failed=0    skipped=758  rescued=0    ignored=1  
ubu22-03                   : ok=498  changed=20   unreachable=0    failed=0    skipped=757  rescued=0    ignored=1  


수요일 16 8월 2023  11:23:50 +0900 (0:00:00.256)       0:15:35.924 ****************
===============================================================================

 

3)    dashboard 값 확인

[asd@ubu22-01 kubespray (kubernetes-admin@cluster.local:kube-system)]$ kubectl get serviceaccounts

[asd@ubu22-01 kubespray (kubernetes-admin@cluster.local:kube-system)]$
kubectl get clusterrolebindings.rbac.authorization.k8s.io kubernetes-dashboard
NAME                   ROLE                               AGE
kubernetes-dashboard   ClusterRole/kubernetes-dashboard   7d22h

[asd@ubu22-01 kubespray (kubernetes-admin@cluster.local:kube-system)]$
k describe clusterrolebindings.rbac.authorization.k8s.io kubernetes-dashboard
Name:         kubernetes-dashboard
Labels:       <none>
Annotations:  <none>
Role:
  Kind:  ClusterRole
  Name:  kubernetes-dashboard
Subjects:
  Kind            Name                  Namespace
  ----            ----                  ---------
  ServiceAccount  kubernetes-dashboard  kube-system

 

 

         1.3.        dashboard 접속

 

1)    계정 생성 및 패스워드 생성

# 서비스 관리자 dash-admin 생성
[asd@ubu22-01 kubespray (kubernetes-admin@cluster.local:kube-system)]$ k create serviceaccount dash-admin

# 생성한 dash-admin유저에 클러스터 롤 바인딩

[asd@ubu22-01 kubespray (kubernetes-admin@cluster.local:kube-system)]$ k create clusterrolebinding dash-admin --clusterrole cluster-admin  --serviceaccount kube-system:dash-admin


# dashboard에 접속할 dash-admin에 대한 토큰을 생성
[asd@ubu22-01 kubespray (kubernetes-admin@cluster.local:kube-system)]$
k create token dash-admin
eyJhbGciOiJSUzI1NiIsImtpZCI6IlVpQklqWnNVdlZQX2VlSzl6d2RycVd0bDZ1VlNlSGFNd2oxSG8yVXkzaTQifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNjkyMTYyMTk3LCJpYXQiOjE2OTIxNTg1OTcsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJkYXNoLWFkbWluIiwidWlkIjoiOWVhOGFkYzAtNWIxNi00MTgwLTllODktZDQxMjQxNjBjYzgyIn19LCJuYmYiOjE2OTIxNTg1OTcsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLXN5c3RlbTpkYXNoLWFkbWluIn0.EMIabnPJ28eO5tIJh4wt8n-i6vd5qedK1oIKpMj6qTpnf45fjXTALGCnx4-V_0Js0Ue2diHOYKjWn8Cv8jUnXp6AZunh3TpP4gN77TEgx0WRsw0pnIN1A79uAYJ36MP-wVVYHF-M4sI0xgh4iq_WrwuXe9uvrHvblBTaTx01tZGhl_DX6qC2LIzTF5h4Iy1ZWrVS8yiXaDpHi2kKEBbEtuWTgmtX2RLzAF1LqD2WwR0_X5hcucRXSyH2VjfQ_gXEw5T-uQa4F69aFsP1DZx1WTQwixEPfwV3ltOgRRso_ro_T8OqHlEPy_qD2bknE8e-vJPkCTGyy670ruh23QAHvw

 

2)    접속할 ip 확인

# 생성된 dash-board의 ip확인
[asd@ubu22-01 kubespray (kubernetes-admin@cluster.local:kube-system)]$ kgs
NAME                        TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                  AGE     SELECTOR
coredns                     ClusterIP   10.233.0.3      <none>        53/UDP,53/TCP,9153/TCP   7d23h   k8s-app=kube-dns
dashboard-metrics-scraper   ClusterIP   10.233.49.26    <none>        8000/TCP                 7d23h   k8s-app=kubernetes-metrics-scraper
kubernetes-dashboard        ClusterIP   10.233.39.205   <none>        443/TCP                  7d23h   k8s-app=kubernetes-dashboard

 

3)     dashboard의 ip로 접속 후 생성한 토큰 값을 입력

4)    접속 화면