IT/도커

nodejs express, kubernetes에 배포하기

seyeonHello 2022. 7. 13. 18:07

작성중..

 

1. docker image를 docker hub에 push하기

docker name으로 docker hub에 push 시, ImagePullBackOff 에러가 있어 먼저 tag를 지정해준다.

1) docker tag 지정하기

docker tag todolist_nodejs seyeon321/todolist_nodejs

2) docker hub 로그인 후 push

docker login
docker push seyeon321/todolist_nodejs

 

 

https://www.oss.kr/info_techtip/show/35267293-bb21-45d1-b037-ece5d6d1bf8c

 

2. 쿠버네티스를 사용하여 클러스터에 이미지 배포하기

deployment.yml 

apiVersion: apps/v1
kind: Deployment
metadata:
  name: todolist
spec:
  selector:
    matchLabels:
      app: todolist
  replicas: 2
  template:
    metadata:
      labels: # labels to select/identify the deployment
        app: todolist
    spec:     # pod spec
      containers:
        - name: todolist
          image: seyeon321/todolist_nodejs # docker image name
          ports:
            - containerPort: 3000

Deployments > replicasets > pod

- pods: 컨테이너의 집합

- replica set: 컨테이너의 집합을 관리하는 컨트롤러

replicas에 2로 설정해서 pod를 2개 실행시킨다.

 

kubectl create -f deployment.yml --save-config

pod가 running 상태인지 확인해본다.

kubectl get pod

NAME                        READY   STATUS    RESTARTS   AGE

todolist-6d68684796-9m9xr   1/1     Running   0          21s

todolist-6d68684796-hmcng   1/1     Running   0          21s

 

인터넷에 접근할 수 있도록 service 오브젝트 생성한다.

kubectl expose deployment todolist --type="LoadBalancer"

서비스에 대한 정보를 확인한다.

kubectl get services

NAME         TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE

todolist     LoadBalancer   ~   localhost     3000:32060/TCP   10s

 

http://<EXTERNAL-IP>:<PORT>  에 접근하여 잘 구동하는지 확인해본다.

 


Reference.

https://kubernetes.io/ko/docs/tutorials/stateless-application/expose-external-ip-address/

https://faun.pub/how-to-deploy-a-express-node-js-app-on-kubernetes-and-an-intro-to-containerisation-205b5c647426

'IT > 도커' 카테고리의 다른 글

Docker 🐋  (0) 2022.03.16