M1에서 k8s 환경을 구성하고 k8s dashboard까지 세팅해 보자
📌 서론
최근 새로운 회사로 이직한 후 회사 적응에 집중하기로 정하여 한동안 글을 작성하지 못했습니다.
한 달쯤 지난 지금 그동안 스스로의 미래에 대해 많은 생각과 고민을 했으며 저는 개발, DevOps를 모두 해보고 싶다는 생각이 들어 다시 개인 공부를 시작했습니다.
그래서 이 모든 것을 할 수 있는 개인 프로젝트를 하나 만들었고 이 프로젝트의 로컬 인프라 구성을 k8s로 정했습니다.
이번 포스트는 제가 Apple silicon chip 맥북(M2 max)에서 k8s를 설치한 후 k8s 대시보드까지 세팅해 보는 과정을 설명하고자 합니다. 이 과정 중 많은 블로그들을 확인했지만 그중 한 블로그의 도움을 많이 받았으며 저는 그 과정을 그대로 따라가 보았습니다.
이 블로그의 내용은 하단의 링크를 통해 확인할 수 있습니다. (지식 공유 감사합니다!)
간단한 내용이지만 좋게 봐주셨으면 합니다!
아래 블로그의 도움을 많이 받았습니다. (블로그 주인장님께 정말 감사한 마음입니다.)
- 저는 단순히 이 내용을 토대로 제 스타일대로 따라가 본 것이니 아래 블로그의 글을 보고 따라서 설치하시는 것을 추천합니다.
[Kubernetes] 쿠버네티스 Dashboard 설치하기
쿠버네티스 공식 홈페이지 yml로 서비스 설치를 수행한다. root@master:~# kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml namespace/kubernetes-dashboard unchanged serviceaccount/k
kindloveit.tistory.com
1. M 1 (apple silicon chip)에서 k8s 설치하기
가장 먼저 아래의 링크에 접속하여 docker desktop을 설치한다.
Docker Desktop: The #1 Containerization Tool for Developers | Docker
Docker Desktop is collaborative containerization software for developers. Get started and download Docker Desktop today on Mac, Windows, or Linux.
www.docker.com
- Docker Desktop 메인 페이지에서는 아래와 같이 "Apple Chip"을 선택해서 다운로드할 수 있다.

- 설치가 완료되었다면 아래 이미지와 같이 1번 "환경설정"을 눌러서 들어가고 2번 "Kubernetes"를 클릭한다.

- 아래와 같은 화면이 나올 텐데 여기서 "Enable Kubernetes"에 체크박스를 선택해 준다.

- 아래의 명령어를 입력하여 k8s가 잘 실행되었는지 확인해 보자
kubectl get svc
- 이렇게 나온다면 k8s가 잘 실행된 것이다.

2. k8s dsahboard 설치하기
아래의 명령어를 통해 yaml을 실행해 준다. (svc에 k8s dashboard가 올라간다.)
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.6.1/aio/deploy/recommended.yaml
아래의 k8s 명령어로 대시보드 서비스가 올라갔는지 확인해 보자 (svc = service의 약자)
kubectl get svc -n kubernetes-dashboard
- 이렇게 dashboard와 관련된 서비스들이 올라간 것을 확인할 수 있다.

이제 외부(로컬 또는 다른 ip)에서 k8s 대시보드에 접속하기 위해 ClusterIP 형태를 NodePort로 변경해 주도록 하자
- 상단 이미지의 TYPE을 보면 kubernetes-dashboard에 "NodePort"라고 설정되어 있는데 이것은 내가 이 글을 작성하기 전에 미리 수정했기 때문이다. (초기 세팅은 ClusterIP로 되어있었다.) 아래의 명령어를 입력해서 수정을 해주자.
kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard
- 아래와 같이 대시보드 설정을 변경할 수 있는 에디터가 열린다. 여기서 하단에 체크해 둔 부분에 nodePort:31000을 추가하고 (이 부분은 참고한 블로그의 내용을 그대로 적용시켰다.) 더 아래의 type을 ClusterIP에서 NodePort로 변경하고 저장한다.

아래의 명령어를 다시 입력해서 대시보드 서비스의 Type이 NodePort로 잘 변경되었는지 확인해 준다.
kubectl get svc -n kubernetes-dashboard
문제가 없다면 로컬 환경에서 31000번 포트를 통해 대시보드 접속을 해보자
- 아래의 링크로 처음 접속하면 ssl 인증 관련 설정을 해둔 것이 없으니 "안전하지 않은 페이지"라는 화면이 나올 텐데 겁먹지 말자.
https://localhost:31000
- 아래와 같은 화면이 나올 텐데 ssl 인증서가 적용되어있지 않은데 https로 접속했기에 발생한 문제다. 일반적으로 local에서는 테스트를 위한 or 개발을 위한 환경 구성이므로 ssl을 잘 적용시키기 않는다. 다음과 같은 방법으로 해결해 보자. 하단의 "고급"을 클릭한다.

- 고급을 누르면 아래와 같이 "localhost(안전하지 않음)(으)로 이동"이라는 글이 적혀있고 이것을 클릭한다.

접속에 성공하면서 아래와 같이 대시보드 접근을 위해 “토큰”을 입력하라는 창이 나온다.

아래의 명령어를 통해 대시보드 전용 토큰을 생성하자
kubectl -n kubernetes-dashboard create token admin-user
- 아래와 같이 토큰이 발급될 것이다. (이것을 사용해서 대시보드에 접속한다.)

토큰을 입력하면 k8s 대시보드에 접속이 완료될 것이다.
- 상단에 있는 빨간 박스를 클릭해서 원하는 namespace로 들어가면 된다. (본인이 만든 namespace로 들어가면 된다.)
