1. 쿠버네티스 개요
- 개발자가 애플리케이션 매니페스트를 마스터에 게시하면, 쿠버네티스는 해당 애플리케이션을 워커 노드 클러스터에 배포
- 개발자는 특정 애플리케이션이 함께 실행되도록 지정할 수도 있으며, 쿠버네티스는 여러 어플리케이션을 동일한 워커 노드에 배포
- 다른 애플리케이션은 클러스터에 걸쳐서 분산되지만 배포된 위치에 상관없이 동일한 방식으로 서로 통신할 수 있음.
2. 쿠버네티스 클러스터 아키텍처 이해
- 마스터 노드 : 전체 쿠버네티스 시스템을 제어하고 관리하는 쿠버네티스 컨트롤플레인을 실행
- 워커 노드 : 실제 배포되는 컨테이너 애플리케이션을 실행
- 컨트롤 플레인 : 클러스터를 제어하고 작동시킴
ㄴ 쿠버네티스 API : 사용자, 컨트롤 플레인 구성 요소와 통신
ㄴ 스케줄러 : 애플리케이션의 배포 담당
ㄴ 컨트롤러 매니저 : 구성 요소 복제본, 워커 노드 추적, 노드 장애 처리 등과 같은 클러스터단의 기능 수행
ㄴ etcd : 클러스터 구성을 지속적으로 저장하는 신뢰할 수 있는 분산 데이터 저장소
- 노드 : 컨테이너화된 애플리케이션을 실행하는 시스템
ㄴ 컨테이너를 실행하는 도커, rkt 또는 다른 컨테이너 런타임
ㄴ API 서버와 통신하고 노드의 컨테이너를 관리하는 Kubelet
ㄴ 애플리케이션 구성 요소 간에 네트워크 트래픽을 로드밸런싱하는 쿠버네티스 서비스 프록시
3. 디스크립션으로 컨테이너를 실행하는 방법 이해
- API 서버가 애플리케이션 디스크립션을 처리할 때 스케줄러는 각 컨테이너에 필요한 리소스를 계산하고 워커 노드에 지정된 컨테이너를 할당
- 그런 다음, 해당 노드의 kubelet는컨테이너 런타임에 필요한 컨테이너 이미지 가져와 컨테이너 실행하도록 지시함.
- 애플리케이션 디스크랩터는 세 개 세트로 그룹화된 네 개의 컨테이너를 가진다.
ㄴ 처음 두 파트는 가각 하나의 컨테이너만 가지고 마지막 파트에는 두 개의 컨테이너가 있는데 , 이 때 마지막 파트에 두 컨테이너를 함께 배치해야 하며, 서로 격리해서는 안된다.
- 각 피드 옆에는 병렬로 실행해야 하는 각 피드의 복제본 수를 나타낸다.
4. 쿠버네티스 사용의 장점
- 애플리케이션 배포의 단순화
- 하드웨어 활용도 높이기
- 상태 확인과 자가 치유
- 오토스케일링
- 애플리케이션 개발 단순화
그룹스터디 링크