[초보를 위한 쿠버네티스 안내서] 쿠버네티스 소개
쿠버네티스 용어와 발음
- master : 마스터
- node : 노드(구 minion 미니언)
- k8s : 쿠버네티스, 케이에잇츠, 케이팔에스
- kubectl : 큐브 컨트롤, 큐브 시티엘, 큐브커들
- eted : 엣지디, 엣시디, 이티시디
- pod : 팟, 파드, 포드
- istio : 이스티오
- helm : 헬름, 핾, 햄
- knative : 케이네이티브
Learning curve
=> 처음에 접하고, 예제대로 공부하다보면 생각보다 어렵지 않다고 느끼지만, 배우면 배울 수록 어려워진다.
단계
- 기본적으로 도커, 컨테이너 오케스트레이션에 대한 개념을 알고 있어야 한다.
- 쿠버네티스 배포 시연
- 쿠버네티스 소개 및 아키텍처의 전반적인 부분을 소개
- 아키텍처 안에 들어가 있는 Object의 세부적인 부분들을 실습
- 통합 배포 실습 진행
=> 이 과정을 거치면 쿠버네티스에서 컨테이너를 띄우고, 외부에서 접속할 수 있는, 일반적인 사용 단계 정도는 학습이 완료. 더 공부하면 쿠버네티스를 단순히 이용하는 것이 아닌, 쿠버네티스 서버를 관리하는 수준까지 나아갈 수 있을 것이다.
소개
- 쿠버네티스는 컨테이너화된 애플리케이션을 자동으로 배포하고, 스케일링 및 관리 한다.
- 컨테이너를 쉽게 관리하고 연결하기 위해서 논리적인 단위로 그룹화
- 사람이 손으로 관리하던 것을 자동화, 논리적인 단위를 추상화하여 관리, 다양한 글로벌 기업의 노하우를 가지고 있다.
- k8s = k 'ubernete' 8자 s
- kube = 앞 네 자를 잘름. 한국어로 쿠베 라고도 하고, 큐브 라고도 부른다.
CNCF 소개
- 클라우드 이전
=> 서버를 일일이 하나하나 관리해야 했다.
- 클라우드 이후
=> 수많은 리소스를 자유롭게 사용하고 추상적으로 관리
- 클라우드 환경에서 어떻게 애플리케이션을 배포하면 좋을까 ?
=> 컨테이너화 하여 배포를 진행
=> 서비스메시를 사용
=> 마이크로 서비스로 프로젝트를 나눈다.
=> API 적극 사용
=> 서버를 사용하고 버려도 부담스럽지 않다.
=> 운영과 개발을 합친 DevOps 환경도 쉽게 적용 가능
=> 쿠버네티스에서 이와 같은 환경을 구성하는 것이 편리하고, 유기적으로 잘 작동함
쿠버네티스 데모
- AWS 클라우드에 Ghost 블로그 배포
=> node.js 로 애플리케이션이 작동
=> 데이터는 MariaDB에 저장
=> 노드가 여러개 존재
=> 프록시 서버를 통해 웹 브라우저는 이를 통해 고스트에 접속
=> 블로그에서 파일을 업로드하게 되면 이미지를 저장해야 한다. 데이터베이스도 데이터 파일을 저장하기 위해 ebs(elastic block storage)라는 디스크를 마운트해야 한다. 어렵지 않지만 귀찮은 작업이다. 그리고 각 서버마다 ssh 원격 접속하여 도커를 설치하고 도커를 실행하는 작업이 필요하다. 프록시 서버를 사용하게 되면, 각 서버마다 일일이 포트를 설정하는 작업을 해줘야 한다. 또 nodejs 서버에게 DB 서버가 어디에 있는지 정확하게 설정 해줘야 한다.
=> 위와 같은 작업을 쿠버네티스를 통해 쉽게 관리할 수 있다.