Kubernetes(k8s) 란?

shin·2023년 6월 13일
0

Kubernetes

목록 보기
1/12
post-thumbnail

Kubernetes(k8s) 란?

  • 쿠버네티스는 Containerozed Application을 자동으로 배포, 스케일링 및 관리해주는 오픈 소스 시스템
    • 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고 확장 가능한 오픈소스 플랫폼
  • 선언적 구성과 자동화를 모두 용이하게 해주는 컨테이너 오케스트레이션 툴

관련 용어 정리

Container : 앱이 구동되는 환경까지 감싸서 실행할 수 있도록 하는 격리 기술

  • 우리가 구동하려는 애플리케이션을 실행할 수 있는 환경까지 감싸서 어디서든 쉽게 실행할 수 있도록 해주는 기술

Container Runtime : 컨테이너를 다루는 도구

  • 컨테이너를 쉽게 내려받거나 공유하고 구동할 수 있도록 해주는 도구
  • Docker : 컨테이너를 다루는 도구 중 가장 유명한 것

Kubernetes : 컨테이너 런타임을 통해 컨테이너를 오케스트레이션 하는 도구

  • Orchestration : 사용자가 원하는 상태(Desired State)로 동작하도록 관리(Schedule)하는 것
    • 여러 서버(노드)에 컨테이너를 분산해서 배치
    • 문제가 생긴 컨테이너를 교체
    • 컨테이너가 사용할 비밀번호나 환경 설정을 관리하고 주입

Kubernetes Cluster

  • 쿠퍼네티스를 배포하면 Cluster를 얻음
    • Cluster : 노드들의 집합
    • 노드는 Control PlaneData Plane으로 나뉘어짐
      • Control Plane : 워커 노드와 클러스터 내 파드를 관리하고 제어함
      • Data Plane : 워커 노드들로 구성되어 있으며 컨테이너화된 어플리케이션의 구성 요소인 파드를 호스트함

Kubernetes Object

  • 쿠버네티스의 오브젝트 : desired state(원하는 상태)를 담은 레코드

  • 오브젝트를 생성하면 쿠버네티스의 컨트롤 플레인에서 오브젝트의 current state(현재 상태)와 desired state를 일치시키기 위해 끊임없이 관리함

  • Object 유형

    pod(파드)

    • 쿠버네티스에서 생성하고 관리할 수 있는 배포 가능한 가장 작은 컴퓨팅 단위
    • 애플리케이션의 최소 실행 단위
    • 하나 이상의 컨테이너를 포함
    • 1개의 Pod에는 1개의 컨테이너 구성 권장
    • Pod 특징
      • Pod에는 각각 고유한 private IP 할당
      • Pod 안에 있는 컨테이너는 pod의 IP를 공유

    service

    • 파드들을 통해 실행되고 있는 애플리케이션을 네트워크에 노출(expose)시키는 가상의 컴포넌트

    deployment

    • 애플리케이션 배포의 기본 단위 리소스

    Volume

    • 컨테이너의 기본 상태는 stateless이기 때문에 상태 유지가 필요한 경우 사용

Amazon EKS

  • EKS를 사용하면 AWS 환경에서 kubernetesControl plane 또는 node를 직접 설치, 운영할 필요가 없음

    • 여러 가용 영역에서 kubernetes 컨트롤 플레인 인스턴스를 실행하여 고가용성을 보장함
    • 비정상 컨트롤 플레인 인스턴스를 자동으로 감지하고 교체하며 자동화된 버전 업그레이드 및 패치를 제공함
  • 다양한 AWS 서비스와 연동하여 확장성과 보안 제공

    • Amazon ECR(Elastic Container Registry) : 컨테이너 이미지 저장소
    • AWS ELB(Elastic Load Balancing) : 로드 분산
    • AWS IAM : 인증
    • Amazon VPC : 격리

Amazon workshop studio : Amazon EKS로 웹 애플리케이션 구축하기

profile
Backend development

0개의 댓글