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) 접속 화면