k8s

배병진·2023년 5월 3일
0

k8s

목록 보기
1/4

k8s개념

  • 컨테이너화된 애플리케이션의 배포, 확장 등을 관리하는 것을 자동화하기 위한 플랫폼

k8s의 발전

  • 초기에 docker의 container가 있었지만 여러 대 동작시키면 중앙에서 통합관리를 할 수 없어, k8s의 컨테이너 오케스트레이션 엔진을 사용해 시스템을 구축한다.

k8s 노드 분류

  • 쿠버네티스 노드
    - 실제 컨테이너가 기동하는 노드(호스트가 되는 물리 머신 또는 가상 머신

  • 쿠버네티스 마스터
    - 쿠버네티스 노드를 관리하는 노드

k8s의 기능

  • IaC
    - YAML, JSON형식으로 작성한 매니페스트를 통해 배포하는 컨테이너로 주변 리소스 관리 가능

  • AutoScaling
    - k8s 위에 컨테이너(레플리카)를 배포할 때 같은 컨터이너 이미지를 기반으로 한 여러 컨테이너를 배포

  • Scheduling
    - 어떤 쿠버네티스 노드에 배포할 것인지 결정하고 어피니티(Inter-Pod Affinity)와 안티어피니티(Anti-Affinity)기능 사용
    - 어피니티와 안티어피니티는 Deployment나 Stateful Set으로 Pod를 배포했을 때 개별 파드 사이의 관계를 정의하는 용도로 사용
    - (Inter-Pod Affinity) : Node Affinity가 node Label을 기준으로 Pod가 배포될 Node를 선택한다면, 기존에 배포된 Pod를 기준으로 배포될 Node를 결정
    - A의 Pod와 B의 Pod가 자주 통신한다고 했을 때 A와 B의 Pod들을 같은 노드에 속하게 만들어 효율을 높이고, 통신 비용을 줄임
    - 안티어피니티 : 특정 Pod와 함께 배포되는 것을 피하도록 배포될 Node를 결정
    하드웨어 자원을 많이 사용하는 App Container가 있을 때 같은 Node에 배포되는것을 대비하여 다른 노드로 파드를 분산시킬 수 있다.

  • Resource Managing

  • Auto Recovery

  • Load Balancing, Service Discovery

  • Data Managing
    - K8s는 etcd 클러스터를 구성하여 이중화가 가능하다. 그래서 데이터를 이중화 된 상태로 관리 가능하다.

컨테이너란?

  • 애플리케이션을 컴퓨팅 공간으로, 주위와 분리해주는 역할

  • 플랫폼, 운영 체제에서 코드를 작성하는 방식

컨테이너화

  • 소프트웨어 코드를 라이브러리, 프레임워크 및 필수요소화 함께 패키지에 포함하여 컨테이너로 분리하는 것을 뜻한다.

컨테이너화의 장점

  • 어떠한 환경, 인프라에서 운영 체제와 상관없이 이동 가능하고, 일관성 있게 실행된다.

profile
history and study

0개의 댓글