Posts 쿠버네티스 구조 및 오브젝트 정리.
Post
Cancel

쿠버네티스 구조 및 오브젝트 정리.

1.Why Kubernetes?.

  • IT 서비스의 사용량이 항상 같지 않기 때문에 서버 자원을 효율적으로 활용하기 위해 kubernenes의 가상화 서비스를 사용한다.(AutoScaling 가능)
  • Auto Healling 기능으로 서비스의 장애가 발생하면 남아있는 여분의 서버로 알아서 서비스를 유지시켜줌.
  • 서비스의 배포및 업데이트를 자동화 할 수 있다.

2.VM vs Container

  • Container 기술은 리눅스의 커널기술인 namespace, cgroups와 같은 OS의 자원격리 기술을 사용하여 구현되는 기술이다.
  • VM은 S/W로 구현된 하드웨어 그위에 OS 를 설치하여 구현 되는 기술.
  • Container는 VM 과 다르게 하드웨 및 OS 계층을 두지 않고 프로세스만 격리하여 구현되기 때문에 성능이 VM보다 뛰어나다.
  • 하지만 VM은 멀티 OS로 호스트의 OS와 같지 않은 OS도 구성할 수 있다.

[출처 : 인프런 대세는 Kubernetes 강좌]

3.Kubernetes Overview

  • Cluster - Master(전반적인 기능 컨트롤)와 Node(자원)로 구성됨 (1:N 구성).
  • namespace
  • service -> 외부로부터 접속할수 있도록 해줌.
  • pod - namespace가 다른 pod끼리는 통신불가.
  • namespace -> ResourceQuota/ LimitRange로 자원의 양을 한정시킴.
    • ConfigMap, Secret
  • service
    • Controller Replication Controller, ReplicaSet(파드의 개수 조정), Deployment(파드 내용 업데이트), DaemonSet(한노드에 pod가 하나씩만 할당되게 해줌.),Cronjob(Pod에서 주기적으로 배치성 작업이 필요하면 배치를 스케줄링해줌.)
    • pod
  • Pod 가죽으면 데이터가 소실되기 때문에 물리적인 Volume과 연결 가능.
  • 아래는 내가 강좌를 듣고 정리한 Kubernetes의 구성도이다.(틀릴수도 있음.)

4.Kubernetes 오브젝트 정리

Pod

  • Pod는 여러개의 Container를 가질 수 있지만 Pod 내의 Container는 같은 port를 가질수는 없음.
  • Pod는 하나의 Host 개념으로 이해하면 됨 ex) 한 Pod 내에서 다른 컨테이너의 8080포트의 컨테이너를 접근할 때 localhost:8080으로 접근 가능.
  • Pod 생성시 IP가 할당되는데 Kubernetes Cluster내에서만 접근 가능하며 Pod가 문제가 발생하여 재생성되면 IP도 재할당됨.
  • Pod 생성시 최대 사용 메모리를 정할수 있음. -> 정하지 않으면 부하가 발생하는 상황에서 해당 Node에 Pod가 모두 다운되는 현상이 발생할 수 있음.

Label

  • Pod뿐만 아니라 모든 오브젝트에 부여 가능.
  • 목적에 따라 오브젝트들을 분류하기 위해 사용됨.
  • Key:Value 구조.
  • 한 Pod에는 여러개의 Label 부여 가능.

Node Schedule

  • Pod 생성시 직접선택하여 생성 : Node에 Label을 부여하고 Pod 생성시 부여한 Label을 선택하여 생성.
  • Pod 생성을 스케줄러가 선택하여 생성 : Node의 자원사용량에 따라 스케줄러가 자동으로 할당.
  • Pod가 할당된 메모리를 초과하여 사용하면 Pod를 종료시키지만 Cpu는 초과시 종료되지는 않고 사용량을 줄임. -> Cpu는 스케줄링하여 대기할 수있지만 메모리는 다른 프로세스의 영역을 침범하여 사용하면 프로세스의 문제를 야기시키기 때문.
This post is licensed under CC BY 4.0 by the author.

Contents

Tez가 MR보다 빠른이유.

컬럼지향 데이터베이스와 MPP 데이터베이스.

Comments powered by Disqus.