devnoong.log
article thumbnail
728x90

1. 구성 파일 만들기

 

manifests 폴더로 이동하도록 하겠습니다.

cd ~/environment/manifests/

 

이미 만들어진 컨테이너 이미지를 포함한 deploy manifest를 생성합니다.

vi nodejs-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: demo-nodejs-backend
  namespace: default
spec:
  replicas: 3
  selector:
    matchLabels:
      app: demo-nodejs-backend
  template:
    metadata:
      labels:
        app: demo-nodejs-backend
    spec:
      containers:
        - name: demo-nodejs-backend
          image: public.ecr.aws/y7c9e1d2/joozero-repo:latest
          imagePullPolicy: Always
          ports:
            - containerPort: 3000

 

그 다음 service manifest 파일을 생성해보도록 하겠습니다.

vi nodejs-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: demo-nodejs-backend
  annotations:
    alb.ingress.kubernetes.io/healthcheck-path: "/services/all"
spec:
  selector:
    app: demo-nodejs-backend
  type: NodePort
  ports:
    - port: 8080
      targetPort: 3000
      protocol: TCP

 

2. ingress 수정하기

기존에 생성했던 ingress파일을 수정해 demo-nodejs-backend의 경로를 하단에 추가해보도록 하겠습니다.

 

vi ingress.yaml

 

 - path: /services
           pathType: Prefix
           backend:
               service:
                 name: "demo-nodejs-backend"
                 port:
                   number: 8080

 

3. 배포하기

kubectl apply -f nodejs-deployment.yaml
kubectl apply -f nodejs-service.yaml
kubectl apply -f ingress.yaml

 

4. 배포확인하기

 

아래의 명령어를 통해 접속 url을 확인합니다.

echo http://$(kubectl get ingress/backend-ingress -o jsonpath='{.status.loadBalancer.ingress[*].hostname}')/services/all

접속 url을 통해 배포가 되었는지 확인해보면 결과값이 출력된 것을 확인해볼 수 있습니다.

 

 

 

수정된 아키텍처 구조는 아래와 같습니다.

 

728x90