티스토리 뷰

쿠버네티스 = k8s

컨테이너 오케스트레이션 솔루션

  • 다수의 컨테이너들을 관리하면서 자동 배포, 배포된, 컨테이너의 동작 보증, 부하에 따른 동적 확장 등의 기능을 담당

도커와 잘 어울리는 실행 환경 구성 도구

  • 도커 컨테이너들을 클러스터 내에 실행하고 관리하는데 적합
  • 지속적 통합과 인도(CI,CD)에 유효하게 적용할 수 있음
  • 컨테이너는 포드라고 불리는 K8S오브젝트와 연관하여 실행(포드 위에서 실행한다고 대강 표현)

k8s 클러스터의 구성 요소

  • 클러스터는 하나 이상의 노드로 구성됨

마스터 노드

  • API서버, etcd - 클러스터의 중심 역할을 하는 구성 요소들
  • 컨트롤러 매니저, 스케쥴러
  • kubelet

워커 노드

  • 컨테이너 런타임(CRI) - 포드를 이루는 컨테이너의 실행을 담당
  • kubelet - 포드의 구성 내용을 받아 CRI에 전달하고 컨테이너들의 동작 상태를 모니터링

쿠버네티스가 제공하는 주요 기능

쿠버네티스(Kubernetes)는 컨테이너 기반 서비스를 안정적으로 운영하고 관리하기 위해 다양한 기능을 제공합니다. 주요 기능은 다음과 같습니다.

- 컨테이너 밸런싱

애플리케이션을 여러 개 복제해야 할 경우, 쿠버네티스는 포드(Pod)의 부하를 자동으로 분산시켜줍니다. 개발자가 복제할 개수만 지정하면, 나머지는 쿠버네티스가 알아서 처리합니다.

- 트래픽 로드 밸런싱

애플리케이션 복제본이 두 개 이상 존재할 경우, 쿠버네티스는 클러스터 내부에서 트래픽을 고르게 분배하여 안정적인 서비스를 제공합니다.

- 동적 수평 스케일링

시스템 부하에 따라 인스턴스 수를 자동으로 늘리거나 줄일 수 있어, 자원을 보다 효율적으로 활용할 수 있습니다.

- 오류 복구

쿠버네티스는 포드와 노드 상태를 지속적으로 모니터링하며, 장애가 발생하면 자동으로 새 포드를 생성해 설정된 복제본 수를 유지합니다.

- 롤링 업데이트

애플리케이션을 업데이트할 때 모든 인스턴스를 한꺼번에 교체하지 않고, 순차적으로 변경함으로써 서비스 중단 없이 배포할 수 있도록 도와줍니다.

- 스토리지 오케스트레이션

애플리케이션에서 필요한 경우, 다양한 스토리지 시스템(예: 로컬 디스크, 클라우드 스토리지 등)을 손쉽게 연결하고 사용할 수 있습니다.

- 서비스 디스커버리

쿠버네티스는 자체 DNS 기반 시스템을 통해 수명이 짧고 유동적인 포드들을 안정적으로 연결해주는 기능을 제공합니다. 이를 통해 클러스터 내 서비스 간의 통신을 쉽게 구성할 수 있습니다.


쿠버네티스의 기본 오브젝트

쿠버네티스를 구성하는 기본 단위들을 간단히 정리하면 다음과 같습니다.

- 포드(Pod)

한 개 이상의 컨테이너로 구성되며, 특정 작업을 수행하기 위한 최소 실행 단위입니다. 고유한 IP를 가지고 있으며, 필요에 따라 사라지거나 교체될 수 있습니다.

- 네임스페이스(Namespace)

쿠버네티스 클러스터 내 리소스를 논리적으로 분리하여 관리할 수 있는 단위입니다. 여러 프로젝트나 팀이 하나의 클러스터를 공유할 때 유용합니다.

- 볼륨(Volume)

포드가 생성될 때 해당 포드에서 사용할 수 있는 파일 시스템 디렉토리를 제공합니다. 컨테이너가 재시작되더라도 데이터를 유지할 수 있도록 도와줍니다.

- 서비스(Service)

동적으로 생성되고 종료되는 포드들에 대해 안정적인 접근 경로를 제공합니다. 클러스터 내부 또는 외부에서 포드에 접근할 수 있도록 지원합니다.

- Deployment

Deployment는 쿠버네티스에서 애플리케이션을 배포할 때 주로 사용하는 오브젝트입니다. 동일한 포드들의 집합인 레플리카셋(ReplicaSet)을 관리하며, 다음과 같은 특징이 있습니다.

  • 자동 업데이트 및 롤백 기능 제공
  • 배포 버전 관리 가능
  • 상태가 없는(Stateless) 애플리케이션 배포에 적합
  • 간단한 레플리카셋보다 유연한 운영 가능

k8s 인프라 구축

  • 로컬 환경
  • Publoc clouds
  • On-prem 설치

로컬 환경에서 쿠버네티스 인프라 구축

1. Docker Desktop 실행 -> 설정에서 쿠버네티스 들어가기

성공 후 cmd를 켜서

kubectl get nodes

이렇게 나오면 성공이다.

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함