쿠버네티스에 대한 개념이 많아 책을 참고하여 기본 지식을 향상시키기 위해 작성한 글입니다.
"도커/쿠버네티스를 활용한 컨테이너 개발 실전 입문", "시작하세요! 도커/쿠버네티스" 두 책을 참고하여 작성한 글입니다.
✏️ 쿠버네티스
- 컨테이너 운영을 자동화하기 위한 컨테이너 오케스트레이션 도구
- 구글 주도 개발로 많은 수의 컨테이너를 협조적으로 연동시키기 위한 통합 시스템
- 컨테이너를 다루기 위한 API 및 명령행 도구도 함께 제공하며 다양한 부품(리소스)를 조합해 유연한 애플리케이션 구축 가능
*쿠버네티스 리소스 : 애플리케이션을 구성하는 부품과 같은것
**노드: 컨테이너가 배치되는 서버
**네임스페이스 : 쿠버네티스 클러스터 안의 가상 클러스터
**파드 : 컨테이너 집합 중 가장 작은 단위, 컨테이너 실행 방법 정의
*명령행 도구(CLI도구)
**kubeadm : 프로덕션 레벨의 클러스트 구축할 수 있게 공식적으로 지원하는 도구, 쿠버네티스 모든 기능 사용 및 노드 구성 활용 가능
**kubectl : 쿠버네티스를 다루기 위한 명령행 도구, 컨테이너 로그 확인 및 원격 접속 가능
- 노드의 리소스 사용현황 및 배치전략을 근거로 컨테이너를 적절하게 배치
- 클러스터에 배치된 노드의 수, 노드의 사양에 따라 배치할 수 있는 컨테이너 수가 결정됨
✏️ 쿠버네티스 클러스터
- 쿠버네티스의 여러 리소스를 관리하기 위한 집합체
- 구성 : 마스터(관리용 컴포넌트가 담긴 파드만 배포된 노드)와 노드의 그룹
- 쿠버네티스는 클러스터 안에 가상클러스터(=네임스페이스)또 생성 가능함
- Pod : 컨테이너가 모인 집합체의 단위로 노드에 배치함, Pod하나에 여러 노드에 걸쳐 배치는 불가능함
- Kube Scheduler : 노드를 모니터링하고 컨테이너를 배치할 적적할 노드 선택
- Kube Controller manager : 컨트롤러 생성 및 관리
- Kube API Server : 쿠버네티스 API를 노출하는 컴포넌트 kubectl로부터 리소스를 조작하라는 지시 받음
- etcd : 고가용성을 갖춘 분산 키-값 스토어, 쿠버네티스 클러스터의 백킹스토어
✓ 파드 생성 및 배포 방법
- 매니페스트 파일(yaml)
- 쿠버네티스의 여러가지 리소스를 정의하는 파일
- 래플리카세트(ReplicaSet)
- 매니페스트의 상위 개념
- 똑같은 정의를 갖는 파드 여러개 생성 후 관리하기 위한 리소스
- 디플로이먼트(Deployment)
- 래플리카세트의 상의 개념
- 래플리카 세트를 관리하고 다루기 위한 리소스
- 디플로이먼트를 수정하면, 레플리카 새로 생성 및 기존 레플리카 교체
- 서비스 : 쿠버네티스 클러스터 안에서 파드의 집합(주로 레플리카세트)에 대한 경로나 서비스 디스커버리 제공 리소스
- ClusterIP 서비스
- 쿠버네티스 클러스터 내부 IP 주소에 서비스 공개 가능, 파드에서 다른 파드 접근시 사용 가능
- NodePort 서비스
- 클러스터 외부에서 접근할 수 있는 서비스
- LoadBAlancer 서비스
- 로컬 쿠버네티스에서 사용하지 않으며 각 클라우드 플랫폼에서 제공하는 로드 밸런서와 연동하기 위해 사용
- ClusterIP 서비스
*서비스 디스커버리 : API 주소가 동적으로 바뀌는 경우에도 클라이언트가 접속 대상을 바꾸지 않고 하나의 이름으로 접근할 수 있도록 하는 기능
'Kubernetes' 카테고리의 다른 글
[Kubernetes] 구축 오류 (0) | 2024.04.10 |
---|---|
[Kubernetes] 클러스터 구축 (1) | 2024.01.27 |
[Kubernetes] 서비스 특징 비교 (1) | 2024.01.27 |