쿠버네티스(Kubernetes)는 컨테이너화된 어플리케이션의 배포, 확장 및 관리를 자동화 하기 위한 오픈 소스 시스템이다.
컨테이너 배포에 도움이 되는 것, 도구 및 작업 방법의 모음집이다.
쿠버네티스는 AWS, Microsoft Azure와 같이 클라우드 서비스 프로바이더가 아니다.
그저 오픈 소스 프로젝트 및 위의 클라우드 프로바이더와 함께 사용할 수 있는 개념 모음이자 소프트웨어 모음일 뿐이다.
쉽게 말하자면 쿠버네티스는 배포용 docker-compose와 같은 의미이다.
여러 컴퓨터, 여러 머신에서 어플리케이션을 실행하여 이를 수행하기때문에 다중 머신 설정에 대해서도 동일한 작업을 수행한다.
컨테이너를 직접 수동으로 배포시킨다면 다양한 문제들이 발생하는데,
쿠버네티스를 이용하면 배포하는 방식, 컨테이너 스케일링, 모니터링 방법과 교체 방법 등을 정의할 수 있다.
쿠버네티스는 오픈 소스 시스템이자 컨테이너 배포를 관리하고 컨테이너를 오케스트레이션하기 위한 사실상의 표준이다.
또한 쿠버네티스를 사용하면 구성을 작성하는게 쉽다.
쿠버네티스가 서비스 운영에 있어서 어떤 자동화 기능을 제공하는가?
여기 A,B,C 서비스가 있는데 아침에는 A 서비스가 서버를 많이 잡아먹고 점심에는 B 서비스, 저녁에는 C 서비스가 서버를 많이 잡아먹는다. 그래서 총 9대의 서버가 필요하다.
근데 쿠버네티스를 이용한다면 하루 동안 A,B,C 서비스의 평균 트래픽을 계산하면 4대분의 자원이 필요하고 오토 스케일링 기능이 있기 때문에 어떤 시간이던 트래픽양에 따라 알아서 서비스의 자원량을 변경시켜 준다.
서비스 에러가 난다면 즉각적인 대응을 위해 각 서비스마다 여분의 자원이 필요할텐데
쿠버네티스가 적용된다면 장애가 난 서버 위에 있는 서비스들이 다른 서버로 자동으로 옮겨주는 오토 힐링 기능이 있기 때문에 한 서버에 장애가 나더라도 여분의 서버 한 대만 있으면 알아서 서비스를 유지시켜준다.
또한 서비스 업데이트등 서비스에 중단이 허용되는 경우 모든 서버를 내렸다가 업데이트 작업 후에 다시 올릴거고 무중단 서비스를 해야되는 경우 한 서버씩 내렸다가 업데이트 작업 후에 서비스를 올리는 방식으로 진행되는데
쿠버네티스도 deployment라는 오브젝트를 통해서 업데이트 방식에 대해 자동적으로 처리되도록 지원하고 있다.
그 외에도 여러 기능들에 대해 운영 자동화를 지원한다.
이러한 서비스 효율이 증가하여 서버가 적어지면 그만큼 유지 보수 비용이 적어지기 때문에 큰 기업들이 관심을 가질 수 밖에 없다.
이러한 자동화 기능들 때문에 쿠버네티스는 많은 기업들의 관심을 가질 수 밖에 없기 때문에 쿠버네티스는 왜 사용해야하는지 알게 될 것이다.
가상화 기술들에 대한 히스토리를 보고 가자.
출처 : https://www.inflearn.com/course/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-%EA%B8%B0%EC%B4%88#
'DevOps > Kubernetes' 카테고리의 다른 글
쿠버네티스(K8s)의 기본 개념과 구조부터 파악해보자! (0) | 2024.09.19 |
---|---|
kubernetes (1) (3) | 2024.07.22 |
Kubernetes 기본 적인 구조 (0) | 2024.02.07 |