쿠버네티스 웹 대시보드 UI를 설치해보겠습니다.
쿠버네티스는 기본적으로 UI를 함께 배포하지 않습니다. 이렇게 별도로 배포해주셔야 합니다.
여기에서 공식 문서 확인할 수 있습니다.
자, 지금부터 대시보드 UI 배포를 진행해봅시다.
1. DashBoard 오브젝트 생성
아래 명령어로 Kubernetes DashBoard 소스코드를 다운로드 합니다.
apply 명령어로 다운받아 실행하게 되면 외부에서 접속할수 없기때문에, 다운로드받은 후 ymal파일을 조금 수정해야 합니다.
[root@kube-manager /]# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
다운받은 후 내용을 조금 수정합니다.
41번, 46번 줄에 각각 내용을 추가해줍니다.
[root@kube-manager /]# vi recommended.yaml
이제, 오브젝트를 생성합니다!
[root@kube-manager /]# kubectl apply -f recommended.yaml
생성된 리소스를 확인해봅시다.
먼저, Namespace 을 확인합니다.
[root@kube-manager /]# kubectl get namespace
여기에 kubenetes-dashboard 인 네임스페이스로 변경합니다.
[root@kube-manager /]# kubens kubernetes-dashboard
2. DashBoard 오브젝트 확인
이제 kubenetes-dashboard 네임스페이스의 오브젝트(리소스)들을 살펴봅시다!
명령어는 아래와 같습니다.
[root@kube-manager /]# kubectl get svc -o wide
[root@kube-manager /]# kubectl get pods -o wide
[root@kube-manager /]# kubectl get secrets
3. DashBoard 사용자 생성하기
대시보드는 Bearer 토큰으로 로그인 하는 방법을 제공합니다.
이 로그인 토큰을 발급하기 위해 사용자/권한을 이번 단계에서 생성해보겠습니다 ;) 공식문서링크
먼저, 서비스 계정(service Account) 을 생성합니다.
아래 명령어 복사 붙여넣기 하신 후 실행 하면 "serviceaccount/admin-user created" 라는 결과를 확인할 수 있습니다.
아래 명령어는 kubernetes-dashboard 네임스페이스에 admin-user라는 계정을 생성합니다.
[root@kube-manager /]# cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kubernetes-dashboard
EOF
이제 사용자를 만들었으니, 이 사용자에 권한을 넣어줍니다.
아래 명령어를 복사 붙여넣기 한 후 실행하면 "clusterrolebinding.rbac.authorization.k8s.io/admin-user created" 라고 출력됩니다.
[root@kube-manager /]# cat <<EOF | kubectl apply -f -
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
자, 이제 마지막을 Bearer토큰을 확인해봅시다!!
먼저 secret 오브젝트를 확인합니다. 'admin-user'가 보입니다.
[root@kube-manager /]# kubectl get secret
이제 토큰을 확인합니다.
아래 명령어를 복붙하시면, 아래와 같이토큰값이 출력됩니다.
토큰값을 확인했으니, 콘솔로 접속해봅시다!!!
[root@kube-manager /]# kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $ 1}')
4. DashBoard 접속하기
Kubenetes DashBoard는 반드시 https 로 접속해야 합니다.
웹 브라우저에서 https://<Node IP>:30331 로 접속합니다.
저같은 경우는 크롬이나, 사파리(MAC사용자입니다)는 아예 접속이 불가했고, FireFox를 다운받아 아래 캡쳐 사진처럼 위험을 감수하고 접속으 눌러 겨우 들어왔습니다 ㅠㅠㅎ
저는 테스트 호스트가 모두 AWS EC2를 사용했습니다.
외부에서 접속하기 위해서 EIP를 할당하여 아래에서처럼 공인IP로 접속할 수 있습니다.
여러분은 여러분의 네트워크 환경에 맞도록 접속 해주시면 됩니다!
고급을 클릭한 후 "위험을 감수하고 계속 진행"을 클릭합니다.
쿠버네티스 대시보드 로그인 페이지가 나왔네요!
이제 여기에서 토큰을 클릭하고, 아까 확인했던 토큰값을 복사 붙여넣기 합니다 :)
로그인이 완료 되었습니다.!
만약 로그인 후에 아무것도 보이지 않는다면 10분정도 시간 지난 후 로그아웃 후 다시 로그인 해보세요!
이번단계가 마무리 되었습니다.
고생하셨습니다 :)