ABOUT ME

물음표가 아닌 느낌표로 행하는 박진수입니다. 우선 클론코딩으로 스터디한 기록들을 작성 후 스스로 재정리 하여 스킬향상을 위해 사용됩니다.😃 또한 소프트웨어 엔지니어로서 경험한 기록들을 적어 나아가고 있습니다 :)

Today
Yesterday
Total
  • 쿠버네티스란?
    Back end/Server 2024. 12. 2. 11:51

    1. 컨테이너 (Container)

    컨테이너는 애플리케이션과 그 실행에 필요한 모든 환경을 포함한 패키지입니다. 컨테이너는 운영 체제 수준에서 격리되어 실행되며, 호스트 시스템과 독립적으로 작동하는 독립된 실행 환경을 제공합니다. Docker는 가장 많이 사용되는 컨테이너화 플랫폼으로, 쿠버네티스에서 실행되는 컨테이너의 대부분은 Docker로 패키징됩니다.
    • 주요 특징:
      • 빠르고 일관된 환경 제공
      • 격리된 환경에서 애플리케이션 실행
      • 가벼운 성능
      • 확장성과 이동성이 뛰어남

    2. 파드 (Pod)

    파드는 쿠버네티스에서 가장 작은 배포 단위입니다. 하나 이상의 컨테이너가 파드 내에서 실행됩니다. 여러 컨테이너가 동일한 파드 내에서 실행되면, 그들은 공유된 네트워크 및 저장소를 사용하게 되어 서로 긴밀하게 연결됩니다.
    • 주요 특징:
      • 하나 이상의 컨테이너: 파드는 여러 컨테이너가 실행될 수 있는 환경을 제공하며, 이를 통해 관련된 애플리케이션들을 함께 배포할 수 있습니다.
      • 공유 네트워크: 동일한 파드 내의 컨테이너는 동일한 IP 주소와 포트를 공유합니다.
      • 공유 저장소: 파드 내의 모든 컨테이너는 동일한 볼륨을 공유하여 데이터를 공유할 수 있습니다.

    3. 디플로이먼트 (Deployment)

    디플로이먼트는 파드를 관리하고 배포하는 가장 중요한 쿠버네티스 객체입니다. 디플로이먼트를 사용하면 애플리케이션을 선언적으로 배포하고 관리할 수 있습니다. 디플로이먼트는 파드의 복제본을 설정하여, 애플리케이션의 가용성과 확장성을 보장합니다.
    • 주요 특징:
      • 스케일링: 디플로이먼트는 파드의 수를 쉽게 조정할 수 있어 자동 확장(Scale-Up/Scale-Down)을 지원합니다.
      • 롤링 업데이트: 애플리케이션의 버전 업데이트를 점진적으로 수행하며, 서비스 중단 없이 배포할 수 있습니다.
      • 복구: 실패한 파드를 자동으로 복구하여 애플리케이션의 가용성을 보장합니다.

    4. 서비스 (Service)

    서비스는 쿠버네티스 클러스터 내에서 네트워크 액세스를 제공하는 추상화된 객체입니다. 서비스는 파드들 간의 안정적인 통신을 보장하며, 클러스터 외부에서 클러스터 내 파드로의 접근을 제공합니다. 서비스는 클러스터 내 IP와 DNS를 할당하고, 로드 밸런싱을 지원하여 요청을 여러 파드에 분배할 수 있습니다.
    • 주요 특징:
      • 클러스터 내 네트워크: 서비스는 파드들 간의 안정적인 네트워크 통신을 제공합니다.
      • 로드 밸런싱: 서비스는 클러스터 내 여러 파드들 간에 트래픽을 균등하게 분배합니다.
      • DNS와 IP: 서비스는 DNS 이름과 클러스터 IP를 제공하여, 파드가 동적으로 변화해도 일관된 네트워크 액세스를 제공합니다.

    5. 도커 (Docker)

    도커는 컨테이너화를 지원하는 플랫폼으로, 애플리케이션과 그 실행 환경을 패키징하여 컨테이너로 만들 수 있습니다. 쿠버네티스는 기본적으로 Docker 컨테이너를 실행하는 플랫폼으로 설계되었습니다. Docker를 사용하면 애플리케이션을 독립적인 실행 단위로 만들고, 이를 다양한 환경에서 쉽게 실행하고 배포할 수 있습니다.
    • 주요 특징:
      • 컨테이너화: 애플리케이션을 격리된 컨테이너로 패키징하여 실행합니다.
      • Docker Hub: 공개적으로 사용할 수 있는 Docker 이미지를 제공하는 레지스트리입니다.
      • 가벼운 환경: 운영 체제 수준에서 격리되어 실행되므로, 자원을 효율적으로 사용합니다.

    6. 이미지 (Image)

    이미지는 애플리케이션과 그 실행 환경을 정의한 읽기 전용 템플릿입니다. 도커 이미지는 애플리케이션 실행에 필요한 모든 파일과 라이브러리를 포함합니다. 쿠버네티스에서 컨테이너를 실행할 때, 해당 컨테이너는 이미지를 기반으로 실행됩니다. 이미지는 보통 Docker Hub와 같은 레지스트리에서 가져옵니다.
    • 주요 특징:
      • 읽기 전용: 이미지는 실행 전에 읽기 전용 파일 시스템으로 만들어지며, 실행 중에는 변경할 수 없습니다.
      • 레지스트리: 이미지는 Docker Hub나 다른 레지스트리에서 가져와 사용합니다.
      • 버전 관리: 이미지는 태그로 버전 관리가 가능하여, 특정 버전의 이미지를 지정하여 실행할 수 있습니다.

    쿠버네티스 구성 요소 간 관계

    • 컨테이너는 애플리케이션을 실행하는 기본적인 실행 단위입니다.
    • 여러 컨테이너가 묶여서 하나의 파드를 구성합니다.
    • 파드디플로이먼트를 통해 관리되며, 복제본을 통해 애플리케이션을 확장할 수 있습니다.
    • 디플로이먼트서비스와 함께 사용되어 외부에서 애플리케이션에 접근할 수 있도록 합니다.
    • 이미지는 도커를 통해 컨테이너화된 애플리케이션을 만들고, 쿠버네티스에서 실행할 때 사용됩니다.
    이렇게 쿠버네티스는 다양한 구성 요소들을 통해 애플리케이션을 관리하고, 배포, 확장, 장애 복구 등을 자동화하여 안정적인 서비스를 제공합니다.
Designed by Tistory.