쿠버네티스는 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. 위 토큰을 복사해 아래 로그인 화면에 붙여 넣고 로그인 한다.(아래)
아래 쿠버네티스 대시보드에 로그 후 화면 이다.(초기엔 배포된 내용이 없다.아래)
------------------------------------------------------------------------------------------------------------------------------------
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(시스템) 이 보인다.(아래)
koyeb플랫폼에서 deploy-without-rebuild 사용 (0) | 2024.11.17 |
---|---|
클라우드와 공공데이터를 활용한 앱 개발 트렌드 (4) | 2024.11.10 |
구름ide 플랫폼에 php앱(그누보드5) 배포하기 (0) | 2024.04.13 |
eGovFrame X K-PaaS 콜라보 세미나(11.22) 참석 후기 (1) | 2023.11.22 |
Azure클라우드에 스프링부트 앱을 CI/CD사용하여 배포하기05(젠킨스빌드) (0) | 2022.10.19 |
댓글 영역