728x90
반응형
출처 : 그림과 실습으로 배우는 도커 & 쿠버네티스
클러스터의 구성 - 마스터 노드와 워커 노드
- 쿠버네티스는 전체적인 제어를 담당하는 마스터 노드와 실제 동작을 담당하는 워커 노드로 구성된다.
- 노드란 물리적 서버라고 생각하면 된다.
- 마스터 노드
- 마스터 노드에서 컨테이너를 실행하지는 않으며 워커 노드에서 실행되는 컨테이너를 관리하는 역할
- 컨테이너 엔진이 설치되지 않는다. (관리만으로도 벅참)
- 워커 노드
- 실제 서버에 해당하는 부분
- 컨테이너가 실제 동작하는 서버
- 컨테이너가 동작해야 하므로 컨테이너 엔진이 설치되어야 한다.
- 마스터 노드와 워커 노드로 구성된 쿠버네티스 시스템을 클러스터라고 한다.
- 클러스터는 사람이 개입하지 않아도 마스터 노드에 설정된 내용에 따라 워커 노드가 관리되며 자율적으로 동작한다.
- 관리자는 마스터 노드의 초기 설정 후 조정만 하면 되며, 관리자가 직접 워커 노드를 관리할 필요가 없다.
쿠버네티스를 사용하려면 먼저 설치가 필요하다
- 쿠버네티스는 도커 엔진 등의 컨테이너 엔진과는 별개의 소프트웨어다.
- 쿠버네티스 소프트웨어와 CNI(Container Networking Interface)를 설치해야 한다.
- CNI 소프트웨어는 플란넬, 팔리코, AWS VPC CNI 등이 있다.
- 마스터 노드에는 컨테이너의 상태를 관리하기 위해 etcd라는 데이터베이스가 설치된다.
- 워커 노드에는 도커 엔진 같은 컨테이너 엔진이 필요하다.
- 마스터 노드를 설정하는 관리자의 컴퓨터에는 kubectl을 설치한다. kubectl을 설치해야 마스터 노드에 로그인해 초기 설정을 진행하거나 추후 조정이 가능하다.
- 정리하자면 쿠버네티스 소프트웨어와 CNI는 마스터 노드와 워커 노드 모두에 설치되어야하고, etcd는 마스터 노드, 컨테이너 엔진은 워커 노드에만 설치하면 된다.
컨트롤 플레인(제어판)과 kube-let
- 마스터 노드는 컨트롤 플레인을 통해 워커 노드를 관리한다.
- 컨트롤 플레인은 5가지 컴포넌트로 구성된다.
- kube-apiserver : 외부와 통신하는 프로세스. kubectl로부터 명령을 전달받아 실행한다.
- kube-controller-manager : 컨트롤러를 통합 관리, 실행한다.
- kube-scheduler : 파드를 워커 노드에 할당한다.
- cloud-controller-manager : 클라우드 서비스와 연동해 서비스를 생성한다.
- etcd : 클러스터 관련 정보 전반을 관리하는 데이터베이스
- etcd 외에는 쿠버네티스에 포함되어 있어서 추가로 설치할 필요 없다. (쿠버네티스랑 etcd만 설치하면 됨)
- 워커 노드에서는 kube-let과 kube-proxy가 동작한다.
- kube-let : 마스터 노드의 kube-scheduler와 연동하며 워커 노드에 파드를 배치하고 실행한다. 실행 중인 파드의 상태를 정기적으로 모니터링해서 kube-scheduler에 통지한다.
- kube-proxy : 네트워크 통신의 라우팅 메커니즘
- kube-let과 kube-proxy도 쿠버네티스에 포함되어 있어서 추가로 설치할 필요 없다.
쿠버네티스는 항상 바람직한 상태를 유지한다
- 쿠버네티스는YAML 파일에 상태를 정의하고, 자동으로 컨테이너를 생성하거나 삭제하면서 설정한 상태를 만들고 유지한다.
- 도커 컴포즈는 옵션을 지정해 수동으로 컨테이너의 수를 바꿀 수는 있지만 모니터링 기능이 없어서 컨테이너를 만들 때 외에는 관여하지 않는다. 반면에 쿠버네티스는 이 상태를 유지하는 기능이 있다.
- 컨테이너가 망가졌다면 쿠버네티스는 알아서 망가진 컨테이너를 삭제하고 새 컨테이너를 생성한다.
쿠버네티스를 사용하는 시스템에서 컨테이너 삭제
- 쿠버네티스의 기능은 자동으로 상태를 유지하는 것으로, 컨테이너를 삭제하고 싶으면 삭제 커맨드를 입력하는 것이 아닌 파일에서 바람직한 상태를 수정해야 한다.
- 도커 커맨드를 통해 컨테이너를 직접 삭제할 수 있지만, 쿠버네티스는 컨테이너가 하나 모자란 상태로 인식하고 새로 컨테이너를 새로 생성해버린다.
- 컨테이너를 삭제하려면 반드시 바람직한 상태에 정의된 컨테이너의 수를 줄여야 한다.
etcd의 역할
- 쿠버네티스는 정의 파일(매니페스트 파일)이 데이터베이스로 관리된다.
- 쿠버네티스가 정의 파일을 읽으면 그 내용은 etcd에 저장된다.
728x90
반응형
'Study > 도커와 쿠버네티스 (Docker & Kubernetes)' 카테고리의 다른 글
쿠버네티스 설치 (0) | 2024.02.23 |
---|---|
쿠버네티스의 구성과 관련 용어 (0) | 2024.02.23 |
쿠버네티스의 정의 (0) | 2024.02.23 |
도커 엔진 - 도커 컨테이너 다루기(2) (0) | 2024.02.19 |
도커 엔진 - 도커 이미지와 컨테이너 (0) | 2024.02.19 |