본문 바로가기

IT 공통

쿠버네티스(Kubernetes)

쿠버네티스(Kubernetes)는 컨테이너화된 애플리케이션을 자동으로 배포, 확장, 관리하기 위한 오픈소스 플랫폼입니다. Google에서 개발한 후 CNCF(Cloud Native Computing Foundation)에 기부된 프로젝트로, 클라우드 네이티브 애플리케이션을 지원하는 핵심 기술로 자리 잡았습니다. 쿠버네티스는 주로 컨테이너 오케스트레이션에 사용되며, Docker와 같은 컨테이너 런타임과 함께 작동합니다.


주요 특징

1. 컨테이너 오케스트레이션

  • 여러 컨테이너를 배포하고 네트워크를 연결하며 상태를 모니터링합니다.

2. 자동화된 작업

  • 애플리케이션의 배포, 복구, 확장, 축소를 자동으로 수행합니다.

3. 확장성

  • 수천 개의 컨테이너를 관리할 수 있으며, 필요에 따라 애플리케이션을 수평적으로 확장 가능합니다.

4. 셀프 힐링(Self-Healing)

  • 문제가 있는 컨테이너를 자동으로 재시작하거나 교체합니다.

5. 로드 밸런싱 및 서비스 디스커버리

  • 서비스 간 통신을 위해 자동으로 네트워크 경로를 설정하고, 트래픽을 분산합니다.

6. 스토리지 오케스트레이션

  • 로컬 스토리지, 퍼블릭 클라우드 스토리지, 네트워크 파일 시스템(NFS) 등 다양한 스토리지 솔루션을 지원합니다.

쿠버네티스의 주요 구성 요소

1. 마스터 노드(Master Node)

  • 클러스터를 관리하고 워커 노드를 제어합니다.
  • 주요 구성:
    • API 서버(kube-apiserver): 클러스터의 REST API 엔드포인트
    • 컨트롤러 관리자(kube-controller-manager): 클러스터 상태를 관리
    • 스케줄러(kube-scheduler): 워커 노드에 작업을 할당
    • ETCD: 클러스터 상태 정보를 저장하는 분산 키-값 저장소

2. 워커 노드(Worker Node)

  • 실제로 컨테이너를 실행하는 노드
  • 주요 구성:
    • Kubelet: 워커 노드에서 실행되며, 컨테이너 실행을 담당
    • Kube-proxy: 네트워크 라우팅 및 서비스 간 통신 지원
    • 컨테이너 런타임: Docker, containerd 등 컨테이너 실행 환경

쿠버네티스의 주요 리소스

1. Pod

  • 쿠버네티스의 가장 작은 배포 단위로, 하나 이상의 컨테이너를 포함

2. Service

  • Pod에 대한 네트워크 접근을 제공하는 추상화 레이어

3. Deployment

  • Pod와 ReplicaSet을 관리하며 애플리케이션 배포 및 업데이트를 담당

4. ConfigMap & Secret

  • 환경설정 데이터를 Pod에 전달하기 위한 리소스

5. Ingress

  • 외부 트래픽을 클러스터 내부 서비스로 라우팅

사용 사례

  • 마이크로서비스 관리: 여러 서비스 간의 통신 및 독립적 배포
  • CI/CD 파이프라인: 지속적 배포와 통합 프로세스 자동화
  • 클라우드 네이티브 애플리케이션: 클라우드 환경에서 확장 가능한 애플리케이션 구축

 

'IT 공통' 카테고리의 다른 글

쿠버네티스(Kubernetes)를 설치  (0) 2025.01.21
AIX 파일시스템 사용율 90% 되면 오래된 파일 부터 삭제  (0) 2025.01.20
Apache Tomcat 설치  (0) 2025.01.18
python web 설치  (0) 2025.01.17
wwn 정보  (0) 2025.01.10