Kubernetes 와 Docker에 대한 이해

김관응·2023년 3월 30일
0

kubernetes

목록 보기
1/10

1. Docker 개념

Docker는 컨테이너 기반 오픈소스 가상화 플랫폼 입니다.

기존에는 호스트OS위에 게스트OS를 올리는 방식이라 오버헤드가 컸으나 컨테이너 기반의 가상화를 하게되면 프로세스만 격리하여 오버헤드가 줄어들게 됩니다.

컨테이너 형식으로 제작 및 배포를 하게 되면 언제 어디서든 똑같은 서비스를 배포할 수 있다. 하지만 운영체제를 가상화 하지 않기 때문에 centOS를 컨테이너로 만들게 되면 hostOS의 cgroup 폴더를 마운트 해주고 호스트에 대한 privileged를 명시해 주어야지 정상 사용이 가능합니다.

2. Kubernetes 개념

Docker 컨테이너의 Ochestration Tool

많은 양의 서비스와 컨테이너를 적절한 위치에 배치하여 자원을 효율적으로 관리해주고 컨테이너를 종합 관리해주는 운영환경입니다.

쿠버네티스는 기본적으로 마스터와 노드로 구성되어 있습니다.
마스터는 클러스터 전체를 관리하는 컨트롤러이고 노드는 컨테이너가 배포되는 물리 머신입니다.

쿠버네티스의 아키텍처는 다음과 같습니다.

kube-apiserver : 쿠버네티스의 모든 기능들은 REST API로 제공되는데 이에 대한 명령을 처리하는 서버입니다.
etcd : 클러스터의 상태를 저장하는 클러스터용 DB입니다.
kube-scheduler : Pod과 Service를 적절한 노드에 할당하는 역할을 합니다.
kube-controller manager : Controller를 생성하고 이를 각 노드에 배포 및 관리하는 역할을 합니다.
kubelet : 마스터의 apiserver와 통신을 하면서 노드가 수행해야 할 명령을 받아 수행하고, 반대로 노드의 상태 등을 마스터로 전달하는 에이전트 입니다.
kube-proxy : 노드로 들어오는 데이터는 라우팅, 로드밸런싱을 하고 나가는 트래픽은 프록시를 하며 통신을 관리합니다.

profile
엔지니어였던 개발자

0개의 댓글