도커

Kubernetes로 서버 애플리케이션을 배포하는데 오류가 발생했다. set image로 새로 빌드한 이미지를 넣어서 사용하는데 CrashLoopBackOff 상태가 되면서 컨테이너가 계속 생성되고 정지되고를 반복하고 있었다. 그래서 원인을 먼저 파악하는 것이 좋을 것 같아서 다방면으로 어떻게 접근하면 원인을 파악할 수 있을까 둘러보면서 도움이 될 만 하거나 정리하면 좋을 것 같은 내용들을 남긴다. 디버깅 파드에 문제가 발생했을 때는 세 가지 오브젝트에 관해 문제 상황을 확인해야 한다. 파드에 문제가 발생 레플리케이션컨트롤러에 문제가 발생 서비스에 문제가 발생 파드 디버깅 파드에 문제가 있는지 확인한다. 가장 간단하게 확인할 수 있는 방법은 describe다. 혹은 get resource로 먼저 대략적인..
최근에 쿠버네티스를 통해 간단히 파드로 서버를 띄워야 하는 일이 있었다. 오랜만에 쿠버네티스를 사용해보는 것이라 서버 자체는 빠르게 띄웠는데, 외부에서 접속하는 방법을 잊어버려서 조금 헤맸다. 그래도 minikube를 사용하니까 쉽게 웹 브라우저나 curl 명령어로 요청/응답이 가능했다. 하지만, LoadBalancer 타입의 Service 오브젝트를 실행하면서 의문이 들었었다. 분명 External IP, targetPort도 잘 지정이 되었는데 막상 로컬 환경에서는 접근이 불가했던 것이다. 구글링하면서 문제를 확인하고 나름 해결했는데 회고하는 겸 서버 띄우는 과정들 및 원인, 이를 해결하는 방법들을 공유해보고자 한다. 혹시 이 게시물이 도움이 될 수 있는 사람이 한 사람이라도 있지 않을까? Mini..
Orders 관련 서비스 작성 1. Controller API Endpoint 추가 주문을 생성하는 API를 설계하도록 하겠습니다. 먼저 Controller에 Endpoint를 설정해줍니다. 단순하게 설정할 것이므로 경로는 루트 경로를 따르겠습니다. POST와 PATCH, PUT 등은 바디를 파라미터로 사용해야 합니다. 그렇기 때문에 DTO도 설정해줍니다. 바디와 같이 데이터가 서버로 요청이 올 때는 데이터를 외부에 호출시키지 않고 숨긴 상태로 전달하는 것이 좋습니다. 그래서 데이터 전송 객체(Data Transfer Object, DTO)가 사용됩니다. 완성된 코드는 아래와 같습니다. // orders.controller.ts @Post() async createOrder(@Body() request:..
MongoDB 추가 몽고디비를 사용하여 데이터를 지속적으로 보관할 수 있도록 하겠습니다. 우리의 애플리케이션의 경우는 유저가 생성하는 orders를 보관하기 위해 사용합니다. 강좌에서는 이전에 작성한 코드를 그대로 복사 붙여넣기해서, 일단 파일에 어떤 코드가 작성되었는지를 먼저 보겠습니다. MongoDB 관련해서 abstract.repository.ts, abstract.schema.ts, database.module.ts 총 세 개의 파일을 추가할 예정입니다. 1. database.module.ts import { Module } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { MongooseModule } ..
턴태
'도커' 태그의 글 목록