2021.03.28 - [클라우드 컴퓨팅 & NoSQL] - 쿠버네티스(Kubernetes) 란?
이전 글에 이어서 쿠버네티스가 해결하는 과제에 대해서 살펴본다.
도커(Docker)와 쿠버네티스를 이용해 해결할 수 있는 9가지 과제
1. 애플리케이션의 빈번한 출시 대응
쿠버네티스의 롤아웃(roll-out)과 롤백(roll-back) 기능은 새로운 기능을 빈번하게 출시하고 버그 수정을 긴급 투입하는 것과 같은 민감한 작업을 안전하게 자동화해 준다.
정식 운영 중인 서비스의 애플리케이션 컨테이너를 무정지로 교체할 수 있다.
2. 무정지 서비스
쿠버네티스의 자기 회복 기능은 무정지 서비스 운영을 도와준다.
응답이 없어진 컨테이너를 재기동하며, 쿠버네티스 클러스터 내에 지정한 수만큼 컨테이너가 돌도록 관리해 준다.
3. 초기 비용을 낮추고 비지니스 상황에 맞게 규모를 조정
애플리케이션과 실행 환경을 하나로 묶어서 배포할 수 있게 해준다. (컨테이너 기술의 특징)
복수의 노드 위에서도 컨테이너가 조화롭게 돌아갈 수 있도록 해준다.
4. 쿠버네티스와 외부 서비스와의 연동
온프레미스 환경의 데이터베이스와 연동하거나, 기타 다른 하이브리드 시스템을 구축할 수 있다.
쿠버네티스의 파드(pod)와 컨테이너(container)는 일시적인 것들이기 때문에, 데이터를 영구 보존하기 위해서 필연적으로 외부의 저장소를 활용해야 한다.
5. 개발 환경과 운영 환경의 분리
컨테이너의 개발이 완료되어 테스트까지 끝났다면 정식 서비스 때 배포하기 전까지는 이미지를 다시 빌드하지 않는 것이 좋다. 추가 기능이 포함되었을 때 문제가 발생할 수 있기 때문이다
쿠버네티스에서는 클러스터를 여러 개의 가상 환경으로 분할하는 것이 가능하고, 이때 각각의 환경에 설정 파일, 보안이 필요한 인증서나 비밀번호 등을 저장할 수 있다.
그렇기 때문에, 테스트가 완료된 컨테이너를 운영환경으로 옮길 때 이미지를 다시 만들 필요 없이 배포가 가능하다.
6. 온프레미스와 클라우드 위에 구축 가능
당연한 말이다.
7. 애플리케이션 중심의 오케스트레이션
인프라 구축에 대한 수고가 많이 줄어들었다.
8. 특정 기업에서 독점하지 않는 표준 기술
오픈소스 패키지를 프로젝트에 적용할 때 제일 걱정되는 부분은 개발사 혹은 단체가 패키지에 대한 지원을 종료하거나, 이전 버전들과 호환되지 않는 기능 수정이 발생할 때 등이다. 가져다 쓰는 입장에서는 이를 방어할 여지가 없다.(프로젝트 당시의 버전을 보관하는 방법밖에는..)
쿠버네티스는 170여 개 회사가 참가하고 있는 오픈소스 프로젝트이므로 특정 회사의 방향성에 영향을 받지 않는다.
9. 서버들의 가동률 높이기
컨테이너 기술은 정해진 서버에서 돌지 않아도 된다는 자유를 제공한다. CPU 사용 시간이나 메모리 요구량도 간단하게 제어가 가능하다. 이 말은 가동률이 적은 서버의 애플리케이션들을 한 곳에 모아 서버의 하드웨어 자원을 최대한 사용하며 안정적으로 서비스를 제공할 수 있다는 것이다.
컨테이너 기술이 적용되지 않은 배포 환경에서는 애플리케이션을 실행시키기 위해 여러 가지 의존성들(예: JAVA 8.., .Net Framework 등)을 설치하기 때문에 여러 개의 애플리케이션을 설치하기가 쉽지 않아서 하드웨어 자원 낭비를 종종 했던 경험으로 미루어 보았을 때 이 부분이 제일 매력적이었다.
쿠버네티스는 이처럼 여러가지 배포 및 운영에 대한 과제를 해결한다.
참고자료
[1] 15단계로 배우는 도커와 쿠버네티스 | 타카라 마호 | 2020.10 | 링크
'클라우드 컴퓨팅 & NoSQL > Kubernetes' 카테고리의 다른 글
쿠버네티스(Kubernetes) 공식 튜토리얼 #3 (0) | 2021.04.01 |
---|---|
쿠버네티스( Kubernetes) 공식 튜토리얼 #2 (0) | 2021.04.01 |
쿠버네티스( Kubernetes) 공식 튜토리얼 #1 (0) | 2021.03.31 |
쿠버네티스 컴포넌트(component) (0) | 2021.03.30 |
쿠버네티스(Kubernetes) 란? (0) | 2021.03.28 |