devnoong.log
article thumbnail
728x90

1. 1. 구성 파일 만들기

 

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

<bash />
cd ~/environment/manifests/

 

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

<bash />
vi nodejs-deployment.yaml
<bash />
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 파일을 생성해보도록 하겠습니다.

<bash />
vi nodejs-service.yaml
<bash />
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. 2. ingress 수정하기

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

 

<bash />
vi ingress.yaml

 

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

 

3. 3. 배포하기

<bash />
kubectl apply -f nodejs-deployment.yaml kubectl apply -f nodejs-service.yaml kubectl apply -f ingress.yaml

 

4. 4. 배포확인하기

 

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

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

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

 

 

 

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

 

728x90