← 프로젝트 목록

03 / CAPSTONE · INFRASTRUCTURE

Kubernetes 이미지 분석 챗봇

Proxmox 가상화 환경에 Kubernetes 클러스터를 구축하고, 컨테이너로 구성한 Frontend·Backend·YOLOv7을 연결해 이미지 분석 챗봇을 배포했습니다.

ROLE
캡스톤 · 클러스터 구축 / 서비스 배포 / 통신 문제 해결
FOCUS
클러스터 구축 · 네트워크 · 서비스 연동

PROJECT AT A GLANCE

Pod의 실행 상태부터
서비스 간 연결까지 확인했습니다.

  • Proxmox 환경에 Kubernetes Master·Worker 클러스터 구축
  • Frontend·Backend·YOLOv7 컨테이너 배포
  • Ingress·MetalLB 외부 라우팅 및 서비스 간 통신 구성

01 / CONTEXT & SCOPE

여러 서비스를 클러스터에서 연결하는 경험.

이미지를 입력받아 분석 결과를 제공하는 챗봇 서비스를 캡스톤으로 구축했습니다. Proxmox 가상화 환경 위에 Kubernetes Master·Worker 클러스터를 만들고 Frontend, Backend, YOLOv7을 Docker 컨테이너로 구성해 배포했습니다.

프로젝트에서 맡은 핵심은 YOLOv7 분석 모델을 서비스로 연결하고 외부 사용자가 접근할 수 있도록 만드는 과정입니다. 클러스터 구축과 컨테이너 배포, 서비스 통신을 중심으로 작업했습니다.

02 / ARCHITECTURE

실행 환경과 요청 경로를 나눠 이해했습니다.

실행 기반

Proxmox → Master·Worker 노드
Kubernetes를 구성하는 가상화·클러스터 계층

서비스 배포

Docker → Kubernetes 워크로드
Frontend·Backend·YOLOv7 서비스 실행

요청 전달

MetalLB·Ingress → Service → Backend → YOLOv7
외부 접근과 내부 분석 API 호출

아래는 클러스터의 실행 기반과 외부·내부 요청 경로를 함께 보여주는 논리 구성도입니다.

논리 구성도 · 노드 수·Pod 배치·구체 경로 규칙은 생략
  • Proxmox 위에 Master·Worker 클러스터를 구축하고 서비스를 컨테이너로 배포했습니다.
  • MetalLB·Ingress는 외부 접근에, Service는 내부 서비스 연결에 사용했습니다.
  • Backend가 YOLOv7 API를 호출해 분석 결과를 사용자에게 반환하도록 연결했습니다.
구성요소프로젝트에서의 역할
ProxmoxKubernetes 노드를 실행하는 가상화 환경
Master · Worker클러스터 구성과 컨테이너 워크로드 실행
MetalLB클러스터 외부 접근을 위한 LoadBalancer 서비스 주소 제공
Ingress외부 HTTP 요청의 서비스 라우팅
ServicePod와 서비스 사이의 네트워크 접근 지점
Backend · YOLOv7분석 요청 전달과 이미지 분석 결과 반환

03 / REQUEST FLOW

Backend가 이미지 분석 API를 호출합니다.

  1. 01

    사용자 입력

    Frontend에서 이미지 분석 요청을 보냅니다.

  2. 02

    서비스 간 호출

    Backend가 YOLOv7 서비스 API에 분석을 요청합니다.

  3. 03

    결과 반환

    Backend가 분석 결과를 받아 사용자에게 돌려줍니다.

컨테이너를 각각 배포하는 것과 하나의 사용자 요청이 끝까지 처리되는 것은 별개의 확인이 필요했습니다. 외부 라우팅과 내부 API 통신을 함께 살폈습니다.

04 / TROUBLESHOOTING

Running 상태와 요청 성공은 달랐습니다.

Pod가 정상 실행 중인데도 서비스 간 통신이 실패했습니다. 프로세스 상태를 확인한 뒤, 요청이 전달되는 경로로 조사 범위를 넓혔습니다.

관찰한 상태

Pod는 실행 중

컨테이너 실행 상태만으로 이미지 분석 요청의 성공을 판단하기 어려웠습니다.

실제 문제

서비스 간 요청 실패

Backend와 이미지 분석 서비스의 연결 상태를 별도로 확인해야 했습니다.

확인한 항목과 분석 경로

확인 항목분석한 범위구분한 관점
Pod 상태서비스 실행 상태 확인실행 여부와 요청 처리 성공을 구분
로그실패 상황과 서비스 동작 확인상태 표시와 실제 동작을 함께 확인
Service·네트워크 설정서비스 간 호출 경로 점검·수정Backend–분석 서비스 연결 확인
최종 검증

Backend → YOLOv7 → 사용자 결과 반환

통신 설정을 분석·수정해 분석 API를 연결했습니다. 서비스 상태와 함께, Backend가 분석 결과를 받아 사용자에게 반환하는 흐름을 확인했습니다.

추후 보완 당시 장애의 정확한 근본 원인과 수정한 설정은 기록을 추가 확인해 보완할 항목입니다.

05 / RESULTS & REFLECTION

배포에서 요청 처리까지 흐름을 완성했습니다.

Proxmox 위 Kubernetes 클러스터에 서비스들을 배포하고, Ingress·MetalLB를 통한 외부 요청과 Backend–YOLOv7 분석 흐름을 구성했습니다.

실행 중인 컨테이너를 확인하는 데서 더 나아가, 사용자 요청을 기준으로 네트워크와 서비스 호출을 추적하는 경험을 했습니다. 서비스 운영에서는 구성요소의 상태와 전체 요청의 성공을 함께 확인해야 한다는 점을 배웠습니다.

이미지 크게 보기