안녕하세요, 쯀리입니다.
오늘은 쿠버네티스에 대해 알아보는 시간을 가져보겠습니다.
! K8s를 알기 위해서는 기본 지식 Docker를 알고 진행 하는 것을 추천드립니다 !
Kubernetes[K8s]
- 쿠버네티스는 '컨테이너 오케스트레이션 툴' 입니다.
- 오케스트레이션이란?
- 컨테이너 역시 그 수가 많아지게 되면, 관리와 운영에 있어서 어려움이 따릅니다.
- 컨테이너 오케스트레이션은, 이러한 다수의 컨테이너 실행을 관리 및 조율하는 시스템입니다.
- 오케스트레이션 엔진을 통해, 컨테이너의 생성과 소멸, 시작 및 중단 시점 제어, 스케줄링, 로드 밸런싱, 클러스터링 등
- 컨테이너로 어플리케이션을 구성하는 모든 과정을 관리할 수 있습니다.
- 다른 컨테이너 오케스트레이션 툴로는 '도커 스웜', 'ECS', 'Nomad'등이 있습니다.
- 오픈소스 기반의 컨테이너화된 애플리케이션의 자동 배포, 스케일링 등을 제공하는 관리 플랫폼
- 쿠네티스는 누가 만들었고 관리하는가?
- Google에서 Borg시스템에서 CNCF(Cloud Native Computing Foundation) 으로 기부 !
K8s 장점 & 단점
장점 :
- 컨테이너화 된 애플리케이션 구동
- 서비스 디스커버리와 로드밸런싱
- 스토리지 오케스트레이션
- 자동화된 롤아웃& 롤백
- 자동화된 복구
- 시크릿과 구성관리
단점 :
- 소스 코드 배포 x, 빌드 x
- 애플리케이션 레벨 서비스 지원 x
- 로깅, 모니터링 솔루션 x
- 포괄적인 머신 설정, 유지보수 관리 자동복구 시스템을 제공
쿠버네티스 특징
- 자동화된 복구(self-healing)
- 컨테이너들을 모니터링하며, 컨테이너 중 하나라도 죽으면 쿠버네티스는 그것을 빠르게 재시작 시킵니다.
- 로드 밸런싱(Load balancing)
- 만약 1만명의 유저가 접속하지만, 당신의 웹/앱은 준비가 되지 않았을 경우
- 쿠버네티스는 해당 웹사이트의 니즈를 수용할 수 있도록
- 자동으로 새로운 컨테이너들을 만들 수 있습니다.
- 또한, 니즈가 줄어들면 컨테이너의 숫자를, 지정해둔 최소 숫자로 자동으로 조절합니다.
- 이전에는 수동으로 했던 작업들을 쿠버네티스가 자동으로 도와주는 것입니다.
- 무중단(Fault tolerance-FT) 서비스
- 기업에서는, 서버 업데이트를 위해서 사용자들이 잠든 새벽 시간을 활용하거나, 긴급 점검의 형태로 서비스를 일시 중단해왔습니다.
- 하지만, 쿠버네티스는 점진적 업데이트를 제공하기 때문에, 서비스를 중단하지 않고도 애플리케이션을 업데이트할 수 있습니다.
- 호환성(Vendor Lock In 해결)
- 고객이 A사의 클라우드를 사용하다가 I사의 클라우드로 환경을 이전하고 싶을 때,
- 서로 다른 업체(Vendor)의 클라우드 제품 간에 호환 문제가 발생하여 이전하기 어려운 상황을 Vendor Lock In 이라고 합니다.
- 쿠버네티스는 도커 컨테이너를 기반으로 하는 오픈소스이기 때문에, 사용자들이 특정 업체에 종속되지 않고 클라우드의 환경들을 이전할 수 있습니다.
- 또한, 한 번 쿠버네티스를 익히면 provider 회사에 상관없이 공통된 마이크로서비스 아키텍쳐 개발이 가능합니다.
쿠버네티스 배포 종류?
1. 관리형 쿠버네티스
- AWS, Google Cloud Platform, Azure
2. 설치형 쿠버네티스
- Rancher, Red Hat Openshift
3. 구성형 쿠버네티스 : 요구사항에 맞게 쿠버네티스를 사용하고 싶을때 또는 교육의 목적에서 사용됩니다
- Kubeadm, Kubespray, Kops, KRIB
요약
- 도커와 쿠버네티스는 상황마다 다르게 사용됩니다.
- 한 개의 컨테이너만 사용한다면 쿠버네티스는 필요 없습니다.
- 쿠버네티스는 많은 컨테이너 관리에 유용합니다.
다음시간에는 Kubernetes의 명령어들을 보면서 실습해보도록 하겠습니다.
참조
'IT 잡지식 > DevOps' 카테고리의 다른 글
[CKA] Kubernetes 개념2 (Replication ControllersVS Replica Set) (0) | 2024.04.02 |
---|---|
[CKA] CKA를 준비하며 다시잡는 쿠버네티스 개념 (0) | 2024.03.28 |
[Docker] React + Nginx (0) | 2023.11.09 |
Ubuntu 22.04 Docker 설치 (0) | 2023.10.29 |
[Jenkins+Ansible] Jenkins에 Ansible 연동하기 (0) | 2023.09.22 |