상세 컨텐츠

본문 제목

도커데스크탑용 쿠버네티스+대시보드 실습하기

클라우드+마이크로서비스

by 김일국 2024. 6. 8. 14:25

본문

쿠버네티스는 K-PaaS 컨테이너 플랫폼에서 기본으로 채택하는 도커컨테이너 오케스트레이션 도구이다.

다양한 이유로 K-PaaS를 사용하지 못할 때 우리는 도커데스크탑을 사용해 도커컨테이너를 작업PC에서 다룰 수 있다.

도커 데스크탑만으로 쿠버네티스를 사용할 수 있으나, K-PaaS 대시보드와 같은 기능을 활용하기 위해서 도커 데스크탑용 쿠버네티스 대시보드를 아래 번호 순서대로 설치 및 실행해 본다.

------------------------------------------------------------------------------------------------------------------------------------

1. 실행환경 : 작업PC(윈도우10), 도커 데스크탑 프로그램 버전4.26.1, 쿠버네티스 설치 후 보이는 버전1.28.2 (아래)

------------------------------------------------------------------------------------------------------------------------------------

- 위 화면에서 도커데스크 탑 프로그램은 총 4개의 실행라이브러리로 구성되어 있다는 것을 알 수 있다.(아래 4개)

 1). Engine : 도커로 이미지 생성 또는 컨테이너 실행을 한다.
     사용 예) docker build . -t kimilguk/react-map -f DockerfileClient 또는 docker run -d -p 3000:80  kimilguk/react-map

 2). Compose : 여러개의 도커 이미지와 컨테이너를 생성할 때 일괄로 처리 가능하다.

    docker-compose.yml 파일 사용 예). docker-compose up 

 3). Credential Helper : 도커 로그인 인증을 처리한다.

     사용 예). docker login (도커데스크탑 프로그램에서 로그인 되어 있으면, docker login 명령에 아이디,암호가 필요없다.)

 4). Kubernaetes : 여러개의 도커 컨테이너 배포를 관리=오케스트레이션 한다.
     사용 예). kubectl apply -f deployments_client.yaml

 

2. 도커 데스크 탑에 내장된 쿠버네티스를 설치 한다.(상단 톱니바퀴 모양 아이콘 클릭 후 아래 번호 순서대로 실행)

위 쿠버네티스 설치 후 돌고래 아이콘 위에 팔각형 쿠베 아이콘이 보인다.(아래)

------------------------------------------------------------------------------------------------------------------------------------

3. 쿠버네티스 대시보드 설치(실습시 되도록이면 프로젝트 폴더로 이동 후 아래 순서대로 실행한다.)

- 공식 사이트( https://kubernetes.io/ko/docs/tasks/access-application-cluster/web-ui-dashboard/ )에서 설치 하는 과정을 요약해 본다.(아래)

1). 대시보드 UI 설치(윈도우 명령 프롬프트에서 아래 kubectl 명령어를 실행한다.)

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.6.1/aio/deploy/recommended.yaml

2). 위 내용을 설치 후 아래 kubectl 명령으로 프록시 URL을 생성한다.(아래)

kubectl proxy

위 명령을 실행하면 아래와 같은 서버 실행결과가 나타난다.(아래)

실제 접속할 URL은 아래와 같다.(아래)
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

------------------------------------------------------------------------------------------------------------------------------------

4. 위 로그인에 필요한 샘플 관리자 토큰 인증값 생성하기(아래)

- 공식 사이트 ( https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/creating-sample-user.md )의 토큰값 생성하는 절차를 요약한 내용이다.(아래)

1). 우선, kubernetes-dashboard 에서 사용할 계정과 권한을 추가한다.(아래)

service-accout.yaml 파일과 cluster-role-binding.yaml파일을 아래와 같이 생성한다.(파일 이름은 상관 없음)

service-accout.yaml(아래 admin-user 계정 생성파일)

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard

cluster-role-binding.yaml(아래 admin-user 권한 생성파일)

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

2.) 위 2개의 파일을 kubectl 명령으로 실행한다.(아래)

kubectl create -f service-account.yaml
kubectl create -f cluster-role-binding.yaml
kubectl get sa -n kubernetes-dashboard

위 명령어 실행화면(아래 sa는 Service Account약자)

3). 위 생성된 admin-user 사용자로 kubernetes-dashboard에 로그인 할 토큰을 생성한다.(아래)

kubectl -n kubernetes-dashboard create token admin-user

- 주의 : 위 토큰은 로그아웃하면 토큰이 사라진다. 재 로그인 시 위 명령으로 토큰을 새로 생성해서 사용해야 한다.

------------------------------------------------------------------------------------------------------------------------------------

5. 위 토큰을 복사해 아래 로그인 화면에 붙여 넣고 로그인 한다.(아래)

http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

아래 쿠버네티스 대시보드에 로그 후 화면 이다.(초기엔 배포된 내용이 없다.아래)

------------------------------------------------------------------------------------------------------------------------------------

6. 작업한 노드js서버와 리액트 앱을 kubectl 명령으로 배포한다.(아래)

- 모든 소스 위치는 다음 깃허브 주소에 있다. : https://github.com/kimilguk/react-basic

kubectl apply -f deployments_server.yaml
kubectl apply -f deployments_client.yaml

- 위 kubectl 명령어를 실행한다.(아래)

- 도커 컨테이너 2개가 배포되는 화면이다.(아래 pendding 에서 running 으로 변경된다.)

 

Ps. 위 쿠버네티스 대시보드와 아래 도커 데스크탑 내용을 비교해 본다.(아래)

- 쿠버네티스에서 관리하는 react-map(개발자),express-server(개발자),kubernetes-dashboard(시스템),dashboard-metric(시스템) 이 보인다.(아래)

관련글 더보기

댓글 영역