본문 바로가기
Develop/DevOps

쿠버네티스(Kubernetes)

by jaekk 2021. 2. 20.

전통적 배포 방식

* 물리 서버 한 대 - 여러 application

* 문제점: 특정 application의 resource 과다 점유 발생 -> 타 application 성능 저하

-> 해결 방안 1: 물리 서버 - application: 1:1 매칭

* 문제점: 리소스 활용도 ↓, 물리 서버 운영 비용↑/관리 어려움

 

가상화 배포 방식

* 물리 서버 한 대 - 여러 Virtual Machine 가동

* 장점: 1) 물리 서버 resource 활용도↑, 하드웨어 비용 절감 (이는 더 나은 확장성 제공)

          2) 보안성 제공(application 간 access 불가)

          3) 물리 resource를 폐기 가능한 가상 머신으로 구성된 클러스터 구성 가능

 

컨테이너 배포 방식

* VM과 유사하나 application 간 OS 공유

* 장점: 1) VM 이미지 방식의 배포보다 쉽고 효율적

          2) 지속적 개발, 통합 및 배포 가능

          3) build/release 시점에 container 이미지를 생성하여 application이 infrastructure와 분리

          4) 운영 환경을 타지 않음

          5) cloud 및 OS 배포판 간 이식성이 좋음

          6) application 중심 관리: 논리적인 resource를 사용하는 OS상에서 application을 실행하므로 추상화 수준이 높아짐

          7) 느슨하고, 자유롭고 유연한 마이크로식 서비스

               * 마이크로 서비스(Micro) <-> 모놀리식 서비스(Monolithic)

           8) resource 격리: application 성능 예측 가능

 

쿠버 네티스가 필요한 이유

분산 시스템을 탄력적으로 실행하기 위해 프레임 워크를 제공하기 때문

 

쿠버 네티스 프레임 워크가 제공하는 기능

* service discovery & load balancing

  DNS 이름이나 자체 IP 주소를 이용하여 container 구분

* storage ocastration

 local, public cloud 가리지 않고 자동 탑재 가능

* self rollout/rollback

container의 원하는 상태로 언제든 변경할 수 있다

* self-bin packing

 쿠버네티스 클러스터 노드를 제공하여 각 container가 필요로 하는 cpu & memory를 쿠버 네티스에게 지시

* self-healing

 쿠버네티스는 container에 문제가 생겼을 때 client 노출 없이 restart, kill, replace 등을 실행하여 중단 없는 운영을 지원한다

* secret과 구성 관리

 암호, OAuth token 및 SSH 키 등을 저장하고 관리

 container 이미지 재구성 X, 스택 구성에 노출 없이 시크릿 및 애플리케이션 구성의 배포 및 업데이트 가능

 

 

 

 

출처: kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/

'Develop > DevOps' 카테고리의 다른 글

oVirt(오버트)  (0) 2021.02.21

댓글