상세 컨텐츠

본문 제목

Kubernetes Intro

Cloud/Kubernetes

by yellowmarine 2020. 5. 8. 19:54

본문

Kubernetes

Intro

History

배포 혁명

Tradition

  • 어플리케이션의 리소스를 정확히 파악할 수 없었으므로 자원의 비효율이 많이 발생
  • 이를 해결하기 위해 물리 서버를 증설 하는것 외에는 답이 없었다

Virtual Machine

  • 단일 서버에서 여러가지 가상화를 통해 어플리케이션을 격리함으로써 리소스 할당에 제한을 둘수 있었다.
  • 각 머신은 운영체제를 가지고 있고 격리, 파괴가 아주 쉬움
  • 그러나 각각의 VM이 격리 되어있기때문에 유연하지 못하다
  • 이 모든걸 OS위의 hypervisor가 통제

Container

  • VM과 다르게 자체 OS를 두지 않고 하나의 OS를 공유 -> 오버헤드가 적고 라이트하다

  • 격리성을 최대한 완화, 또 인프라와의 종속성을 끊었기 떄문에 이식이 매우 쉬움

  • 보통적으로 Docker가 container를 관리한다

    Image

    • Container를 구성하는 요소로써 설계도라고 볼 수 있다.
    • 기본적인 설정 값들을 미리 설정
    • 베이스 이미지 + 유저 이미지가 합쳐저서 컨테이너가 형성된다.
    • 이미지들 간에는 베이스 이미지에서 브랜치 형식으로 추가되는 이미지가 생겨나게 된다 -> 메모리가 커지지 않는 구조

What to do?

Service Discovery & Load Balancer

  • MSA 같은 상황에 서비스가 원격으로 호출되고 이런 서비스는 동적으로 생성되거나 변경이 일어남 이런 상황에서 서비스 위치를 찾는 기법
  • 기본적으로 Service registry를 두어 서비스의 주소값을 미리 저장
  • Client side : 클라이언트가 레지스트리에 물어봄
  • Server side : 서비스 앞에 로드밸런서를 두고 로드밸런서가 레지스트리로 부터 위치 리턴 후 라우팅
  • 이러한건 부하 분산, 보안, 서비스 가능 여부등을 판별하여 제공가능

Kubetnetes Component

구성요소

쿠버네티스의 컴포넌트

Control plane

  • Kube-apiserver

    • 쿠버네티스 클러스터의 api를 사용할수 있게 해주는 프로세스
    • 클러스터로 요청이 왔을때 요청의 유효성을 판단
    • 수평적 확장이 가능하기때문에 여러 장비에 호출 가능
  • ETCD

    • 고가용성 key-value 저장소
    • 백업으로 많이 쓰임
  • kube-scheduler

    • 새로운 포드들의 노드 할당에 관여한다
    • 하드웨어 요구사항, 어피니티/안티어피니티 조건, 특정 노드 조건 등을 설정 가능
  • kube-controller-manager

    • 각각의 컨트롤러가 pod들을 관리 이러한 컨트롤러 관리 역할
    • 각 컨트롤러를 하나의 바이너리 파일로 컴파일 시키고, 단일 프로세스로 실행
    • 큐에 때려박아서 실행
  • cloud-controller-manager

    • 쿠버네티스를 다른 클라우드와 연동시켜주는 역할
      • 노드 컨트롤러 : 클라우드 서비스 내에서 노드관리
      • 라우트 컨트롤러 : 클라우드 인프라내에서 네트워크 라우팅 관리
      • 서비스 컨트롤러 : 클라우드 서비스의 로드밸런서를 생성/갱신/삭제
      • 볼륨 컨트롤러 : 클라우드 서비스의 볼륨을 관리

Node

  • kubelet
    • 클러스터의 모든 노드에 위치
    • 포드내의 컨테이너 실행을 직접 관리
  • kube-proxy
    • 클러스터 내부에 별도의 가상 네트워크를 설정 관리
    • pod간의 통신 가능?
  • Container runtime
    • 실제 컨테이너가 실행되는 공간
    • 도커,rkt등
  • Addons
    • 클러스터 내부에서 필요한 기능들을 위해 실행되는 pod
    • Deployment, replecaset 등에 의해 관리
    • Namespace 는 kube-system

'Cloud > Kubernetes' 카테고리의 다른 글

Pod probe  (0) 2020.06.17
Kubernetes Controller  (0) 2020.05.11
Kubernetes Object  (0) 2020.05.11

관련글 더보기