목록 보기
쿠버네티스(Kubernetes)를 활용한 안정적이고 효율적인 운영 환경 구성하기
데브옵스

쿠버네티스(Kubernetes)를 활용한 안정적이고 효율적인 운영 환경 구성하기

스캐터랩 핑퐁
스캐터랩 핑퐁
2020년 9월 25일

두줄요약

GitHub Actions와 ECR, EKS를 연결한 지속적 배포 흐름을 구성했습니다. Pod 동기화, TensorFlow Serving, 로그 스트리밍 운영 방식도 소개합니다.

구조와 흐름

  • GitHub Flow 기반 브랜치 작업, CI 테스트·커버리지 검사, 스테이징 검수, 리뷰 승인 후 릴리스
  • GitHub Actions에서 릴리스 태그 기반 Docker 이미지 빌드·태깅 후 AWS ECR 푸시
  • Kubernetes YAML의 이미지 태그 변경과 kubectl apply를 통한 프로덕션 배포

선택 이유

  • 작은 단위의 지속적·자동화된 배포로 수동 업데이트의 위험 축소
  • AWS EKS 기반 CPU 서비스와 GPU 모델 서비스의 분리 운영
  • Service, Deployment, HPA, Ingress 조합을 통한 서비스 구성

성능/운영 포인트

  • readinessProbe·livenessProbe, nodeSelector, HPA 기반 상태 확인과 CPU/GPU 노드 배치
  • 사이드카의 kubectl 프록시와 Endpoints API를 통한 ReplicaSet 내 Pod 직접 요청 전파
  • TensorFlow Serving의 S3 모델·설정 로딩, BigQuery 스트리밍 로그와 Slack 알림 연계

주의할 점

  • Pod에서 Kubernetes API 접근 시 적절한 ServiceAccount 권한 설정 필요
  • TensorFlow Serving 이미지 래핑 시 의도치 않은 의존성 발생 가능성
  • Deployment 정책에서 Blue/Green·Rolling Update 선택 및 rollout 상태 확인

다음 읽기

#Kubernetes 주제를 이어서 읽기

새로운 루다를 지탱하는 모델 서빙 아키텍처 — 1편: A/B 테스트를 위한 구조 설계

모델 추론 구조까지 비교할 수 있도록 서비스 백엔드와 파이프라인을 분리했습니다. ConfigMap과 프록시 라우팅으로 A/B 테스트를 빠르게 제어했습니다.

스캐터랩 핑퐁
스캐터랩 핑퐁
AI

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...