Tech - 쿠버네티스

불순분자들·2022년 8월 25일
0

ETC( 기타 )

목록 보기
18/24

쿠버네티스

쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼이다.
쿠버네티스는 선언적 구성과 자동화를 모두 용이하게 해주고, 쿠버네티스를 통해 클러스터를 효율적으로 관리할 수 있고, 이 클러스터는 퍼블릭 클라우드, 프라이빗 클라우드, 또는 하이브리드 클라우드 전체로 호스트를 확장할 수 있다.

-> 쿠버네티스는 실시간 데이터 스트리밍과 같이 신속한 확장을 요구하는 클라우드 네이티브 애플리케이션을 호스팅하는 데 이상적인 플랫폼이다.

쿠버네티스의 장점

  • 빠른 생성과 배포 : VM 이미지를 사용하는 것에 비해 컨테이너 이미지 생성이 보다 쉽고 효율적이다.

  • CI&CD : 안정적이고 주기적으로 컨테이너 이미지를 빌드해서 배포할 수 있고 빠르고 쉽게 롤백할 수 있다.

  • 개발과 운영의 관심사 분리 : 배포 시점이 아닌 빌드/릴리스 시점에 애플리케이션 컨테이너 이미지를 만들기 때문에, 애플리케이션이 인프라에서 분리된다.

  • 가시성은 OS 수준의 정보와 메트릭에 머무르지 않고, 애플리케이션의 헬스체크 및 그 밖의 시그널을 볼 수 있다.

  • 개발, 테스팅 및 운영 환경에 걸친 일관성 : 랩탑에서도 클라우드에서와 동일하게 구동된다.

  • 클라우드 및 OS 배포판 간 이식성: Ubuntu, RHEL, CoreOS, 온-프레미스, 주요 퍼블릭 클라우드와 어디에서든 구동 가능하다.

  • 애플리케이션 중심 관리 : 추상화 수준이 가상 하드웨어 상에서 OS를 실행하는 수준에서 논리적인 리소스를 사용하는 OS 상에서 애플리케이션을 실행하는 수준으로 높아진다.

  • 느슨하게 결합, 분산, 유연하고 자유로운 마이크로 서비스 : 애플리케이션은 단일 목적의 머신에서 모놀리식 스택으로 구동되지 않고 보다 작고 독립적인 단위로 쪼개져서 동적으로 배포되고 관리된다.

  • 리소스 격리 : 애플리케이션 성능을 예측할 수 있다.

  • 자원 사용량 : 리소스 사용의 효율이 높다.

쿠버네티스가 필요한 이유

쿠버네티스는 분산 시스템을 실행하기 위한 프레임워크를 제공한다.
애플리케이션의 확장과 장애 조치를 처리하고, 배포 패턴 등을 제공해 준다.
-> 컨테이너가 다운되면 다른 컨테이너로 넘겨 컨테이너가 다운되지 않는다.

컨테이너를 위한 보안은 멀티레이어 구조인데, 쿠버네티스 오케스트레이션을 사용하면 여러 컨테이너에 걸쳐 애플리케이션 서비스를 구축하고 클러스터 전체에서 컨테이너의 일정을 계획하고 이러한 컨테이너를 확장하여 상태를 지속적으로 관리할 수 있다.

쿠버네티스로 할 수 있는 것

  • 여러 호스트에 걸쳐 컨테이너를 오케스트레이션한다.

  • 하드웨어를 최대한 활용하여 엔터프라이즈 애플리케이션을 실행하는 데 필요한 리소스를 극대화한다.

  • 애플리케이션 배포 및 업데이트를 제어하고 자동화한다.

  • 스토리지를 장착 및 추가해 끊김없는(stateful) 애플리케이션을 실행한다.

  • 컨테이너화 된 애플리케이션과 해당 리소스를 즉시 확장한다.

  • 선언적으로(Declaratively) 서비스를 관리함으로써, 배포한 애플리케이션이 항상 배포 목적대로 실행되도록 한다.

  • 자동 배치, 자동 재시작, 자동 복제, 자동 확장을 사용해 애플리케이션 상태 확인과 셀프 복구를 수행한다.

  • DNS 이름을 사용하거나 자체 IP주소를 사용해 컨테이너를 노출시킬 수 있다.

  • 컨테이너에 대한 트래픽이 많으면 네트워크 트래픽을 로드밸런싱 해 안정적인 배포가 이루어지게 한다.

  • 자동화된 롤아웃과 롤백을 지원한다.

  • 실패한 컨테이너를 다시 시작하고 교체하며 응답하지 않는 컨테이너를 죽이고 서비스를 새로 준비한다.

profile
장래희망 : 침대 위 녹아든 치즈

0개의 댓글