이전 포스팅에서는 쿠버네티스 설치까지 완료하였습니다. 이제 구성은 완료되었으니 쿠버네티스 대시보드를 설치해서 UI 툴을 이용하려 합니다.
대시보드를 이용하면 각 Pod, Service 등 다양한 리소스들을 한눈에 조작할 수 있어 매우 유용합니다.
쿠버네티스 대시보드 설치하기
1. 대시보드 설치를 위해서 아래 명령어를 수행해 줍니다.
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
해당 명령어를 통해서 다음 리소스를 생성합니다.
- kubernetes-dashboard 네임스페이스
- Dashboard Pod
- Dashboard Service (ClusterIP)
- Metrics Scraper
이제 아래 명령어를 통해서 대시보드 Pod가 정상적으로 동작하는지 확인합니다.
kubectl get pods -n kubernetes-dashboard
이제는 쿠버네티스 대시보드가 정상적으로 동작하는지 확인합니다.
kubectl get svc -n kubernetes-dashboard
2. 외부접근 허용을 위하여 NodePort를 설정해 줍니다.
지금까지 구성한 환경은 외부에서 해당 쿠버네티스 대시보드 ip:port로 접근해야 합니다. 지금은 로컬에서만 접근가능하게 설정되어 있습니다.
이제 아래 명령어를 통해서 쿠버네티스 대시보드 서비스를 변경하기 위한 편집창을 엽니다.
kubectl -n kubernetes-dashboard edit service kubernetes-dashboard
편집창을 열고 아래처럼 type을 NodePort로 변경해 줍니다.
성공적으로 편집이 되면 자동으로 서비스가 변경되며 NodePort가 생기게 됩니다.
이제 https://{ip}:{nodePort}/#/login으로 대시보드 페이지를 접근할 수 있습니다.
3. ServiceAccount와 ClusterRoleBinding을 생성해 줍니다.
서비스 어카운트란
- 서비스 어카운트는 k8s에서 애플리케이션의 인증 및 권한 관리를 담당하는 객체입니다. 쿠버네티스 클러스터 내에서 실행되는 애플리케이션은 기본적으로 API 서버와 상호 작용해야 하는데, 이때 서비스 어카운트를 사용해 API에 접근 권한을 부여받습니다. 서비스 어카운트는 애플리케이션에 필요한 인증 및 권한 관리를 효과적으로 수행하며, 보안상의 이슈를 최소화할 수 있습니다.
ClusterRole이란
- 네임스페이스 단위에서의 리소스 접근을 핸들링하는 RBAC과는 다르게 클러스터 단위로 접근권한을 제어하는 룰입니다.
이제 대시보드를 서비스 어카운트를 생성하고 cluster-admin role을 바인딩해 주는 작업을 진행합니다.
kubectl create serviceaccount dashboard-admin -n kubernetes-dashboard
kubectl create clusterrolebinding dashboard-admin \
--clusterrole=cluster-admin \
--serviceaccount=kubernetes-dashboard:dashboard-admin
4. 대시보드 접근 토큰을 생성합니다.
대시보드 접근을 위한 인증 토큰을 생성합니다. 유효기간이 있어 필요시에는 유효기간 무기한 또는 재생성을 진행해주셔야 합니다.
kubectl create token dashboard-admin -n kubernetes-dashboard
5. 쿠버네티드 대시보드 토큰을 통하여 로그인을 합니다.
이제 쿠버네티스 대시보드를 접근할 수 있게 되었으며 현재 다른 pod를 띄우지 않은 상태인 경우 네임스페이스를 대시보드로 가게 되면 대시보드 파드들이 생성되어 동작하고 있는 것을 볼 수 있습니다.
여기까지 제가 구축한 쿠버네티스 포스팅입니다. 글로 작성해 보니 생각보다 어렵지 않게 된 거 같은데 혼자서 해결해 나가는 과정에서 많은 시간이 소요되었습니다.
실제로 k8s로 구현하는 경우는 좀 더 복잡한 과정이 있으나 k3s를 사용해서 좀더 손쉽게 구축할 수 있었습니다.
구성된 환경을 이용해서 쿠버네티스에 대해서 이제는 학습을 진행하고자 합니다.
여기까지 함께 쿠버네티스 구축을 읽어주셔서 감사합니다.
참고 문서
'Devops' 카테고리의 다른 글
우당탕탕 쿠버네티스 구축 도전기 - 2 (2) | 2025.05.06 |
---|---|
우당탕탕 쿠버네티스 구축 도전기 - 1 (0) | 2025.05.05 |
gitHub & Jenkins CI/CD 적용 (4/4) (1) | 2024.06.06 |
gitHub & Jenkins CI/CD 적용 (3/4) (0) | 2024.06.02 |
gitHub & Jenkins CI/CD 적용 (2/4) (0) | 2024.06.01 |