쿠버네티스란

박상준·2024년 4월 17일
0

쿠버네티스

목록 보기
1/2

  • 쿠버네티스(Kubernetes, 줄여서 k8s) 는 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하기 위한 오픈 소스 플랫폼이다.
  • 컨테이너 오케스트레이션 도구로 분류됨.
  • 여러 컨테이너의 배치, 확장 및 운영을 효율적으로 관리할 수 있게 해준다.
  • 구글에 의해 개발되었으며, Cloud Native Computing Foundation(CNCF) 에 기부되어 현재는 오픈소스 커뮤니티에 의해 관리되고 있다.

쿠버네티스 사용 사례

  • MSA
    • 서로 독립적으로 실행되는 작은 서비스들을 관리하고, 이들 간의 통신을 용이하게 한다
  • 불변 인프라스트럭처
    • 애플리케이션의 환경을 일관되게 유지하며, 배포 시 오류의 가능성을 줄인다
  • 자동화된 롤아웃과 롤백
    • 애플리케이션의 새로운 버전을 점진적으로 배포하고, 문제가 발생하는 경우 이전 버전으로 쉽게 롤백이 가능하다
  • 로드 밸런싱과 서비스의 발견
    • 애플리케이션에 대한 트래픽을 자동으로 분산시키고, 서비스 간의 연결을 자동으로 관리한다.

장점

  • 확장성
    • 필요에 따라 애플리케이션을 쉽게 확장, 축소 가능
  • 높은 가용성
    • 애플리케이션의 중단 없이 지속적인 서비스를 제공
  • 자원의 최적화
    • 컨테이너를 효율적으로 배치하여 자원 사용을 최적화한다.

주요 개념

  • 클러스터(Cluster)
    • 여러 대의 서버(노드) 를 포함하는 쿠버네티스의 관리 단위이다.
    • 쉽게
      • 게임을 진행하는 전체 필드나 맵을 의미한다.
      • 큰 맵 안에 여러 플레이어(서버 == 노드) 가 있으며, 모두 함께 작업을 수행한다
  • 노드(Node)
    • 클러스터를 구성하는 각 서버를 의미한다.
    • 노드는 마스터 노드와 워커 노드로 구분된다.
    • 쉽게
      • 게임에서 각각의 플레이어를 의미한다.
      • 큰 게임 필드 ( 클러스터 ) 안에 있는 개별 플레이어들이다.
      • 각 플레이어(노드)여러 작은 역할 (컨테이너) 를 맡아 수행할 수 있다.
  • 파드(Pod)
    • **하나 이상의 컨테이너를 포함하는 쿠버네티스의 배포 단위.**
    • 동일한 네트워크와 볼륨을 공유하는 컨테이너 그룹이다.
    • 쉽게
      • 플레이어(노드)가 동시에 여러 작은 미션(파드) 을 수행할 수 있다.
      • 각 파드는 하나 이상의 컨테이너로 구성될 수 있고, 팀 워크를 통해 미션을 완수하는 것과 비슷하다.
  • 서비스(Service)
    • 파드 그룹에 대한 안정적인 네트워크 주소를 제공한다.
    • 쉽게
      • 게임에서 다른 플레이어들이나 외부에서 특정 플레이어(노드)미션(파드) 을 찾을 수 있게 해주는 안내소 같은 역할을 한다.
      • 이를 통해 특정 역할을 하는 파드에 쉽게 접근하고, 필요한 작업을 요청할 수 있다.
  • 매니페스트 파일 ( Manifest File)
    • YAML 또는 JSON 형식으로 구성된, 쿠버네티스 리소스를 정의하는 파일

즉,

  • 쿠버네티스는 여러 서버(노드)그 안에서 실행되는 작은 역할(파드)들을 관리하며, 이 모든 것을 효율적으로 조율하여 목표를 달성하도록 돕는 시스템이다.
profile
이전 블로그 : https://oth3410.tistory.com/

0개의 댓글