쿠버네티스 개념

유현민·2022년 9월 25일
0

도커 & 쿠버네티스

목록 보기
22/28
post-thumbnail

포드(pod)

  • pod라는 것에 의해 관리된다.

  • pod는 쿠버네티스에서 가장 작은 단위이다.

  • 포드는 하나 이상의 애플리케이션 컨테이너와 이러한 컨테이너에 속한 모든 리소스를 호스팅한다.

  • 마스터 노드에서 포드를 추가 삭제

  • 포드안에 하나 혹은 여러개의 컨테이너가 있다.

  • 워커 노드에 둘 이상의 포드가 실행되는게 일반적이다.

워커 노드(worker node)

  • worker 노드에서 포드를 실행한다.

  • worker 노드는 컨테이너를 실행하는 쿠버네티스 내의 것이다.

  • worker 노드를 머신, 가상 인스턴스라고 생각할 수 있다.

  • 마스터 노드에서 관리

  • 내부에 포드 있다.

  • 도커 설치해야함

  • kubelet이라는게 실행중..?

프록시(proxy)

  • proxy는 쿠버네티스가 worker 노드에서 worker 노드의 pod 네트워크 트래픽의 제어를 설정하는 도구이다.

  • proxy는 기본적으로 pod가 인터넷에 연결할 수 있는지의 여부와 pod 및 그 내부에서 실행되는 컨테이너를 외부 세계에서 어떻게 접근할 수 있는지를 제어한다.

  • ex) pod의 컨테이너에서 웹 app을 실행하는 경우 사용자의 외부 트래픽이 컨테이너에 도달할 수 있도록 proxy를 구성해야 한다.

  • 하나 이상의 worker 노드가 필요하다. 그렇지 않으면 pod, 컨테이너를 실행할 장소가 없기 때문이다.

  • 쿠버네티스를 사용하여 컨테이너 및 pod를 동적으로 추가 및 제거하는 경우, 트래픽이 들어오고, 감소함에 pod는 쿠버네티스에 의해 사용 가능한 모드 worker 노드로 자동으로 배포된다.

마스터 노드(master node)

  • 워커 노드와 상호 작용하여 제어하는 컨트롤 센터이다.

  • 쿠버네티스로 작업을 할 때 워커 노드, 포드와 직접 상호작용하지 않고 컨트롤 플레인이 대신한다.

  • 마스터 노드는 다른 서버, 다른 리모트 머신이다.

  • 마스터 노드는 마스터 노드에서 실행 중인 컨트롤 플레인을 갖고 있으며, 워커노드와, 워커노드 상에서 실행중인 포드와 상호작용한다.

  • 마스터 노드는 클라우드 프로바이더 API에 명령을 보내, 그 클라우드 프로바이더에게 클라우드 프로바이더의 특정 리소스를 생성하고 원하는 상태를 그 클라우드 프로바이더에 복제하도록 지시한다.

  • API서버 실행중 -> 워커 노드에서 실행되는 kubelet 서비스에 대한 카운터 포인트인 마스터 노드 머신에서 실행되는 간단한 서비스이다.
    -> 워커와 마스터 노드간의 통신을 위한 카운터 파트다.

  • 스케쥴러 -> 포드를 관찰하고, 새 포드가 생성되어야 하는 워커 노드를 선택하는 일을 담당

  • kube-controller-manager -> 워커 노드 전체를 감시하고 제어하며 적당한 수의 포드를 가종 중에 있는지 확인하는 역할을 한다. 스케줄러 및 API 서버와 긴밀하게 연동된다.

  • cloud-controller-manager -> kube와 동일한 작업을 수행하지만, 클라우드 프로바이더에 따라 다르다.

쿠버네티스가 수행하는 작업

  • 포드 생성

  • 포드에서 컨테이너를 실행, 스케일링, 모니터링 및 교체에 도움

  • 워커 노드와 생성한 머신을 활용하고, 컨테이너 배포 목표를 달성하는데 도움

쿠버네티스가 수행하지 않는 작업

  • 클러스터와 노드 생성

  • 쿠버네티스 API 서버, kubelet 및 다양한 서비스를 설치해주지 않기 때문에 우리가 직접 설치해야 한다.

  • 자원을 생성하지 않는다.

용어

  1. 클러스터
    -> 노드 머신, 마스터, 워커 노드 배포 혹은 원하는 최종 상태를 구성하는 모든 것의 컬랙션 세트.

  2. 노드
    -> 하나 또는 여러 개의 포드를 호스팅하는 특정 하드웨어 용량을 가지며 클러스터와 통신하거나 클러스터 내에서 통신하는 물리적인 머신 또는 가상 머신이다.
    -> 모든 워커 노드를 걸쳐 포드를 관리하는 컨트롤 플레인을 가진 마스터 노드가 있다.
    -> 다른 노드 타입으로 워커 노드도 가지고 있다.
    -> 이들은 포드를 호스팅하는 실제 머신이며, 앱 컨테이너와 이러한 컨테이너에 필요한 리소스를 실행한다.

  3. 포드
    -> 애플리케이션 컨테이너와 요구 리소스가 포드라고 하는 유닛으로 결합됨을 의미한다.
    -> 포드는 shell이다.
    -> 컨테이너를 시작하며 특정 컨테이너를 관리한다.
    -> 마스터 노드에 의해 관리된다.
    -> 포드가 생성되는 것은 포드에서 컨테이너를 실행하는 것과 같다.

  4. 컨테이너
    -> 일반 도커 컨테이너
    -> 포드가 컨테이너를 실행한 =>포드가 내부적으로 docker run 명령을 실행한다는 것을 의미한다.

  5. 서비스
    -> 논리적 세트
    -> 고유한 포드 및 컨테이너에 독립적인 IP 주소를 가진 포드 그룹이다.
    -> 서비스는 포드에 접근하는데 중요하며, 따라서 그 안에 있는 컨테이너도 중요하다.
    -> 프록시와 관련이 있다.
    -> 서비스는 쿠버네티스 세계에서 특정 포드를 외부 세계에 노출하여 특정 IP 주소 또는 도메인으로 특정 포드에 ㅇ녀결할수 있도록 하는 용어일 뿐이다.

profile
smilegate megaport infra

0개의 댓글