지난 시간에는 [노드js앱을 컨테이너기반 도커용 앱으로 실행하기] 작업을 하였다.
이번 시간에는 [노드js앱을 컨테이너 배포 플랫폼인 쿠버네티스에 배포하고 실행하기]로서 미니쿠베(MiniKube)를 사용하는 대신 도커데스크탑에 내장된 kubernetes 메뉴를 이용하여 도커 이미지를 쿠버네티스로 배포하고, 실행하도록 합니다.
-------------------------------------------------------------------------------------------------------------------------------
1. 먼저, 도커데스크탑 Settings 메뉴에서 쿠버네티스를 사용가능하게 설정 후 도커데스크탑을 재 실행 합니다.(아래)
- 위 쿠버네티스 실행 결과 kubernetes running 확인 (아래)
-------------------------------------------------------------------------------------------------------------------------------
- 쿠버네티스용 대시보드는 설치하지 않고, CLI 명령어로만 작동 하겠습니다. 참고로, 이 후 포스트에 있는 K-PaaS 클라우드를 사용하면 쿠버네티스 대시보드 화면을 사용 하실 수 있게 됩니다.
- 참고로, 도커 데스트탑용 대시보드 정보는 여기에서 확인 가능합니다.( https://mydailylogs.tistory.com/120 )
2. 쿠버네티스 배포용 yaml 파일을 사용하여 kubectl apply -f deployments.yaml 명령으로 kubernetes 서비스에 배포한다.(아래 deployments.yaml 파일내용중 containerPort 부분이 80으로 해도 작동됨, 구별하기 위해서 3000으로 넣어 두었음)
# 실행 예 : kubectl apply -f deployments.yaml , kubectl delete -f deployments.yaml
# 기술참조: https://learnk8s.io/deploying-nodejs-kubernetes, https://blog.naver.com/techshare/222630235507
apiVersion: apps/v1
kind: Deployment
metadata:
name: nodejsboard # kubectl expose deployment nodejsboard --type=NodePort, kubectl delete service nodejsboard -> kubectl get service
spec:
replicas: 1
selector:
matchLabels:
app: nodejsboard
template:
metadata:
labels:
app: nodejsboard
spec:
containers:
- name: nodejsboard
image: nodejsboard
imagePullPolicy: Never # Always 는 doker hub에 올린 이미지를 사용할 때
ports:
- name: nodejsboard
hostPort: 80 # Dockerfile 파일의 순서와는 반대이다.
containerPort: 3000
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: nodejsboard
spec:
type: LoadBalancer
ports:
- name: nodejsboard
port: 80
protocol: TCP
selector:
app: nodejsboard
- 위 deployments.yaml 파일을 실행(pod생성 및 실행) /삭제(pod삭제 및 중지)하는 화면(아래)
- 위 내용 중 [Dockerfile 파일의 순서와는 반대이다.] 에 해당하는 부분을 아래 [도커데스크탑]에서 확인 가능하다(아래)
- 위 쿠버네티스 컨테이너에 배포된 부분 80:3000 부분의 링크 아이콘을 클릭하면 아래 처럼 결과가 나온다.(아래)
-------------------------------------------------------------------------------------------------------------------------------
3. 다 확인 되었으면, 마지막으로 컨테이너를 삭제 시킨다. (또는 도커데스크탑 프로그램에서 중지 시킨다.)
- 삭제명령어: kubectl delete -f deployments.yaml
- Docker Desktop 프로그램에서 중지해도 자동으로 재 시작 된다. (아래가 기본 값으로 Never는 지원하지 않는다. 그래서 deployments.yaml 파일에는 추가하지 않았다.)
- 쿠버네티스 컨테이너에서 무중단 서비스를 하기 위한 내장된 기능입니다.^^
- 오늘 작업한 [ 도커이미지를 생성시키는Dockerfile파일과 쿠버네티스컨테이너를 생성시키는deployments.yaml파일 ] 은 노드js엡 소스에 포함시켜 깃허브에 올려 놓았습니다.(아래)
- https://github.com/miniplugin/nodejsboard
Ps. 오늘작업으로 PC에서 도커데스크탑 프로그램에 내장된 쿠버네티스를 사용한 컨테이너에 노드js앱을 배포해 보았습니다. 앞으로 K-PaaS 컨테이너 플랫폼에도 위 yaml 파일을 수정하여 배포해 보는 시간을 갖겠습니다.
참고로, 지난 포스트에서 기존 노드js앱은 K-PaaS 사이트카라는 애플리케이션 플랫폼(k8s대신 Cloud Foundry 사용)에 배포한 경우 입니다.
- K-PaaS 애플리케이션 플랫폼(사이트카+앱소스zip파일)지원 : 이용신청= https://digitalsolveup.kr/platform.do , 실행화면= https://nodejsboard.apps.emergency-cloudplatform.kr/
- K-PaaS 컨테이너 플랫폼(쿠버네티스+ 앱소스도커이미지 ) 지원 : 2주이용신청= https://k-paas.or.kr/exp/expApply , 실행화면= http://playpark.k-paas.org/
- 다양한 public 클라우드에서 쿠베네티스 사용정보(아래 참조 URL)
K-PaaS컨테이너 플랫폼 사용하기 (0) | 2024.01.10 |
---|---|
자바스크립트 DOM프로그래밍+외부API프로그래밍 수업자료 정리 (0) | 2024.01.09 |
노드js앱을 컨테이너기반 도커용 앱으로 실행하기 (1) | 2024.01.02 |
구글파이어베이스를 사용해 노드js 웹서비스 만들기_5/5 (1) | 2023.12.29 |
구글파이어베이스를 사용해 노드js 웹서비스 만들기_4/5 (0) | 2023.12.28 |
댓글 영역