Kubernetes/쿠버네티스 모범 사례 스터디

개발자 워크플로

막이86 2023. 11. 14. 15:16
728x90

쿠버네티스 모범 사례을 요약한 내용입니다.

  • 쿠버네티스의 목적은 소프트웨어를 안정적으로 운영하기 위함
    • 배포와 관리가 단순해지는 효과
  • 쿠버네티스는 애플리케이션 개발에는 그다지 도움이 되지 않음

2.1 목표

  • 빠르고 쉽게 애플리케이션을 구축할 수 있도록 해줌
  • 개발자들이 쉽게 적응할 수 있도록 온보딩을 쉽게 해줘야 함
    • 계정 생성 및 첫 배포까지 지원해 줌
    • 핵심 성과 지표(KPI)도 세워야 함</aside>
    • <aside> ❓ 흠... KPI까지..? 필요한가?
    • 빈손으로 시작한 사용자가 30분 내에 애플리케션의 최신 버전을 실행하도록 만들기가 좋은 예
  • 개발 시 클러스터에 코드를 빠르고 반복적으로 푸쉬 해야 함
    • 문제 발생시 쉽게 코드를 테스트하고 디버그를 할 수 있어야 함
    • KPI를 적용하게 되면 풀 리퀘스트를 보내거나 클러스터에 변경을 반영하고 실행하는 데 걸린 시간을 평가 할 수 있음
  • 테스트 환경을 제공 해야함
    • 로컬 환경에서 테스트를 할 수 있도록 환경을 제공 해야 함
    • 배포전 테스트가 자동으로 실행 되어야 함
    • 테스트 실행 시간 또한 KPI를 적용할 수 있음
      • 테스트 실패에 대해 매우 엄격한 KPI를 설정 해야함

2.2 개발 클러스터 구축

  • 쿠버네티스에서 개발시 단일 개발 클러스와 개발자별 클러스터 중 하나를 선택 해야함
  • 개발자별 클러스터의 가장 치명적인 단점은 큰 비용과 낮은 효율성 관리해야할 클러스터의 수가 많다
    • 각 클러스터의 사용률이 굉장히 저조할 가능성이 존재
    • 리소스를 추적하여 사용하지 않는 리소스를 삭제하기 어려움
    • 각 사용자는 고립된 클러스터를 독립적으로 관리하게 되므로 서로에게 피해를 주지 않음
  • 단일 개발 클러스터는 굉장히 효율적으로 사용이 가능 (개발자 수가 같을 때 1/3가격 정도)
    • 사용자 관리 프로세스와 잠재적인 개발자 간의 간섭이 있음
    • 새로운 사용자와 네임스페이스를 추가하는 과정은 간단하지 않음
    • 개로운 개발자를 위한 온보딩 프로세스를 만들어야 함
    • 특정 사용자가 너무 많은 리소스를 사용하는 경우 클러스터가 먹통이 되는 현상이 발생할 수 있음
      • 리소스 관리나 역활 기반 접근제어로 해결이 가능하기도 함
    • 리소스 생성하면서 누수를 발생시키는 것을 신경 써야함
  • 책에서는 단일 클러스터를 추천함
    • 여러가지 단점이 있지만 충분히 관리가 가능한 수준임
    • 궁극적으로 비용 대비 효율성이 높음

2.8 개발 환경 설정 모범 사례

  • 워크플로를 설정하는 것은 생성성을 높여 행복의 문을 여는 열쇠 입니다.
  • 개발자 경험을 온보딩, 개발, 테스팅의 세단계로 나누어 생각해 봅시다.
728x90

'Kubernetes > 쿠버네티스 모범 사례 스터디' 카테고리의 다른 글

버전, 릴리스, 롤아웃  (1) 2023.11.14
지속적 통합, 테스트, 배포  (1) 2023.11.14
설정, 시크릿, RBAC  (1) 2023.11.14
모니터링과 로깅  (0) 2023.11.14
기본 서비스 설치  (1) 2023.11.14