월루를 꿈꾸는 대학생

쿠버네티스 대시보드 삽질기 본문

Server&Network/Kubernets_Dokcer

쿠버네티스 대시보드 삽질기

하즈시 2022. 2. 6. 02:39
728x90

본 글은 쿠버네티스 대시보드 삽질기 입니다.

대시보드 설치 및 완성본을 원하시는 분은 맨 밑을 봐주세요.

 

쿠버네티스를 사용할 때 보통 cli환경에서 작업을 하다보니 gui로 볼 수 있는 대시보드로 관리하는 게 더 좋지 않을까 라는 생각과 가시다님 노션에 짤막하게 있던 대시보드를 해보고 싶어 작성하게 되었습니다. 

 

 


쿠버네티스 대시보드란 ? 

- 웹 기반 쿠버네티스 유저 인터페이스

- 대시보드를 통해 웹상에서 클러스터 배포 및 트러블슈팅이 가능 

- 시각화적인 정보와 리소스를 한 눈에 보여줌 

 

https://kubernetes.io/ko/docs/tasks/access-application-cluster/web-ui-dashboard/

 


삽질 1 노션 그대로 따라해보기 

 

- https://raw.githubusercontent.com/gasida/KANS/main/2/dashboard-2.4.0.yaml 파일로 배포 시도 

- 프록시 설정 및 웹으로 접근시도 

- 아무 생각없이 그대로 따라치고 결과 아무것도 나오지 않음 

 

** 여러번 삽질 후 다시 되돌아보니 ip 설정을 노드마다 보고 했어야 했는데 신경쓰지 않고 해서 나오지 않았던 거임... 늘 생각하면서 공부하자!

 

 


삽질 2 책에 나온 방법 시도 

 

- 쿠버네티스 입문책과 컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커 서적 참고 

- 최신 버전이 2.5인데 책은 1,10버전 및 2,0버전을 사용 -> 현재 최신 버전은 2.5

- 정상적으로 배포는 되는 것으로 보여지나 화면에서 벌써 심상치 않음을 감지 

 

error 404...?

# 몇 개 서비스는 잘 보이는 것을 확인 

 

# 웹에서 파드 배포는 되는 거 같지만 실제 cli에서 확인 시 pending 상태 

 

https://github.com/sysnet4admin/_Book_k8sInfra/blob/main/app/B.kube-dashboard/dashboard.yaml

 

GitHub - sysnet4admin/_Book_k8sInfra: < 컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커 >

< 컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커 >. Contribute to sysnet4admin/_Book_k8sInfra development by creating an account on GitHub.

github.com

 

 

- 해당 yaml 파일과 기존 2.5파일 비교시 포트번호 변경 및 노드포트로 프록시 없이 웹 노출을 구현하였으나 nodeport 추가 후 제대로 동작이 되지 않음 

 

**추가**

- 노드포트를 설정해서 대시보드를 외부에 노출하는 방법은 kubeconfig 인증서를 웹 브라우저에 설치해야하는 번거러움이 발생 


 

 

# 삽질 3 토큰

- 쿠버네티스 깃허브의 최신 버전 파일 배포

https://github.com/kubernetes/dashboard

 

GitHub - kubernetes/dashboard: General-purpose web UI for Kubernetes clusters

General-purpose web UI for Kubernetes clusters. Contribute to kubernetes/dashboard development by creating an account on GitHub.

github.com

- 배포 후 파드의 위치 확인 후 프록시 설정 

#nohup kubectl proxy --port=8001 --address=[노드ip]--accept-hosts='^*$' >/dev/null 2>&1 &

 

-웹 접속

http://[노드ip]:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login

로그인 하려면 토큰이 필요함 그리고 이 때 저 빨간색 글씨를 자세히 봤어야 했다....

 

- 대시보드의 계정 확인 -> default

# kubectl get serviceaccounts -A

 

 

토큰 확인 

 


# 토큰 확인 

빨간색 글씨로 안 된다고 나와있었다...

** 토큰을 웹에 넣으려고 하니 sign in 버튼이 비활성화,,

 

# 토큰 입력하려면 http가 아닌 https로의 접근이 필요 

https://github.com/kubernetes/dashboard/blob/master/docs/user/accessing-dashboard/README.md#login-not-available

 

GitHub - kubernetes/dashboard: General-purpose web UI for Kubernetes clusters

General-purpose web UI for Kubernetes clusters. Contribute to kubernetes/dashboard development by creating an account on GitHub.

github.com

 

 


해결 방법

 

기존에 받아둔 2.5버전의 대시보드 파일 수정 필요

로그인을 넘어갈 수 있도록 

#- --enable-skip-login 추가 

 

다시 대시보드에 접속하면 생략이라는 버튼이 새로 생김 

 

대시보드에서 에러 알람 확인 

cluster role이 정해져있지 않다고 나오는 에러 

cluster role 설정이 필요 

 

 

# 어카운트 정의

 

추가했으나... 여전히 알람이 그대로 ..

 

 


해결방법

 

대시보드 yaml 파일에서 name: kubernetes-dashboard 부분을 cluster-admin으로 변경

 

 

 

yaml 파일 재 배포후 프록시 설정해서 접속 

 

-프록시 설정 

#nohup kubectl proxy --port=8001 --address=192.168.10.10 --accept-hosts='^*$' >/dev/null 2>&1 &

 

-대시보드 접속 

#http://192.168.10.10:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login

 

**제대로 접속됨!**

 

 

*** 추가 설정 ***

- 배포가 여러 노드에서 되기 때문에 지정할 필요성이 있음 

- nodeSelector 부분에 hostname으로 변경후 노드 이름을 명시

 


대시보드에서 배포하기 

- 우측 상단에 + 버튼 누르고 원하는 이미지와 파드 수를 입력

 

- 대시보드에서 현재 클러스터 상태 확인 가능 

 

- 배포된 디플로이먼트 정보 확인 

 

- cli환경에서도 제대로 배포됨을 확인 가능 

 


대시보드로 쿠버네티스 배포 및 설정등을 확인 해보면 대시보드로 세팅하는게 더 편하지 않을까? 라는 생각도 들지만 조사를 해보니 대시보드를 사용하기 위해 권한을 풀어줘야하기 때문에 보안상 좋지 않고 심지어 실습에서 보다시피 로그인 인증도 건너뛰었기 뛰었고 https접속을 하지 않았기 때문에 현업에서 과연 이걸 자주 사용할까라는 의문이 드는 툴이었다.

 

dashboard.yaml
0.01MB

 

 

#결론 

-> 대시보드는 쓰지말자! 

 

 


참고 사이트

 

https://jogeum.net/22

 

KUBERNETES DASHBOARD 사용하기

쿠버네티스 준비 대시보드 설치 계정과 권한 계정 생성 계정 토큰 조회 대시보드 로그인 대시보드 삭제 쿠버네티스 (kubernetes) 쿠버네티스는 컨테이너화 되어 있는 서비스를 배포하고 손쉽게 스

jogeum.net

 

https://scbyun.com/1151

 

[kubernetes] 쿠버네티스 대시보드 설치 및 외부 접근 방법

쿠버네티스 대시보드 설치 및 외부 접근 방법 쿠버네티스 대시보드 설치 kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml $ kubectl ap..

scbyun.com

 

https://jaynamm.tistory.com/entry/9-%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-%EB%8C%80%EC%8B%9C%EB%B3%B4%EB%93%9C-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0

 

9. 쿠버네티스 대시보드 설치 및 설정하기

쿠버네티스 대시보드를 통해 쿠버네티스 노드나 파드를 한눈에 볼 수 있다. 하지만 대시보드를 사용하게 되면 모든 권한흘 해제해주어야 하기 때문에 대시보드에서 클러스터의 모든 오브젝트

jaynamm.tistory.com

 

https://github.com/kubernetes/dashboard

 

GitHub - kubernetes/dashboard: General-purpose web UI for Kubernetes clusters

General-purpose web UI for Kubernetes clusters. Contribute to kubernetes/dashboard development by creating an account on GitHub.

github.com

https://blog.naver.com/alice_k106?Redirect=Log&logNo=221320466860&from=postView 

 

142. [Kubernetes] Kubernetes 대시보드 실행하기

이번 포스트에서는 Kubernetes 대시보드를 실행하는 방법에 대해서 알아본다. 개인적인 의견으로는, 초보 ...

blog.naver.com

 

728x90

'Server&Network > Kubernets_Dokcer' 카테고리의 다른 글

CoreDNS & Service (MetalLB)  (0) 2022.02.20
KNAS Service (ClusterIP & NodePort)  (0) 2022.02.12
KNAS 3주차 _ 2  (0) 2022.02.03
KNAS 3주차_1  (0) 2022.02.02
KANS 2주차_2 PAUSE  (0) 2022.01.20