DevOps/Kubernetes

Kubernetes란?, Kubernetes 설치

연향동큰손 2025. 7. 29. 21:12

 

Kubernetes란?

 

쿠버네티스란 컨테이너화된 애플리케이션을 배포,관리,확장하는 오픈소스 기반 컨테이너 오케스트레이션(Container Orchestration) 도구이다.

 

여기서 컨테이너 오케스트레이션이란 ‘컴퓨터 리소스 자원과 애플리케이션 및 서비스에 대한 자동화된 설정 및 관리’를 의미한다.

같은 의미를 차용하여 컨테이너 오케스트레이션(Container Orchestration)을 해석하자면, "컨테이너화 된 애플리케이션에 대한 자동화된 설정, 관리 및 제어 체계"로 받아들일 수 있을 것이다.

 

 

쉽게 말하면 컨테이너들을 통합적으로 문제없이 잘 돌아갈 수 있도록 해주는 자동 컨테이너 관리 솔루션 정도로 해석하면 될 것 같다.

 

 

Kubernetes 주요 기능

 

1. 자동 복구 :  실패한 컨테이너를 자동으로 재시작하고, 정의된 상태와 다를 경우 자동으로 교체한다.

2. 로드 밸런싱 : 애플리케이션 트래픽을 자동으로 분산시키고, 외부 트래픽을 처리하기 위한 고유한 IP 주소를 제공한다.

3.  서비스 발견 : 컨테이너가 서로를 찾고, 소통할 수 있는 환경을 자동으로 설정한다.

4. 확장성 :  명령어 하나로 컨테이너의 수를 쉽게 늘리거나 줄일 수 있다.

 

 

Kubernetes 핵심 구성 요소

 

 

 Kubernetes Master(마스터)와 Kubernetes Node(노드)로 나뉜다.

 

1. 쿠버네티스 마스터

  • Kube-apiserver : 쿠버네티스 클러스터의 핵심 API 서버. 사용자의 요청(명령, 설정 등)을 받아 내부 컴포넌트에 전달한다.
  • kube-controller-manager : 클러스터 상태를 관리하는 여러 컨트롤러(예: 노드 컨트롤러, 레플리케이션 컨트롤러 등)를 실행한다.
  • kube-scheduler : 새로운 컨테이너(파드, Pod)가 실제 어느 노드에 배치될지 결정
  • etcd : 클러스터 전체의 상태 정보를 저장하는 분산 키-값 저장소
  • DNS, kube-proxy : 클러스터 네트워크 내에서 네임 해석(DNS)과 라우팅 기능을 제공.

 

2. Kubernetes Node (쿠버네티스 노드, 워커 노드)

  • 마스터에서 “일”을 실제로 수행하는 서버(혹은 가상머신)이다.
  • kubelet : 해당 노드에서 파드(Pod)를 관리 (마스터와 통신)
  • DNS : 네임 해석 지원.
  • cAdvisor : 노드 및 컨테이너 모니터링(리소스 사용량 등)
  • kube-proxy : 네트워크 프록시 및 로드밸런싱 기능.
  • 각 노드에는 여러 개의 Pod(컨테이너 묶음)가 실행될 수 있다.

 

 

쿠버네티스 다운로드 절차

 

 

1. Virtualbox 설치

  • Virtualbox는 윈도우 PC 위에서 리눅스 가상머신(VM)을 띄울 수 있게 해주기 위해서 필요하다.
  • 쿠버네티스 노드(마스터, 워커)를 윈도우 PC위에 VM으로 설치되는 구조가 된다.

2. Vagrant 설치

  • Vegrant는 빠르게 VM(가상머신)을 만들고 관리하는 도구이다.
  • 스크립트(Vagrantfile)를 통해 원하는 설정을 자동화

3. Vagrant 스크립트 실행

cmd창에서 해당 명령어 순서대로 실행

# Vagrant 폴더 생성
C:\Users\사용자> mkdir k8s && cd k8s

# Vagrant 스크립트 다운로드
curl -O https://raw.githubusercontent.com/k8s-1pro/install/main/ground/k8s-1.27/vagrant-2.4.3/Vagrantfile

# Rocky Linux Repo 세팅
curl -O https://raw.githubusercontent.com/k8s-1pro/install/main/ground/k8s-1.27/vagrant-2.4.3/rockylinux-repo.json
vagrant box add rockylinux-repo.json

# Vagrant Disk 설정 Plugin 설치 
vagrant plugin install vagrant-vbguest vagrant-disksize

# Vagrant 실행 (VM생성)
vagrant up

 

4. MobaXterm 설치

  • 쿠버네티스가 설치된 리눅스 가상머신에 접속하기 위해서는 SSH가 필요하다.

 

5. Master Node로 원격 접속

  • 앞에서 Vagrantfile에서 가상머신의 네트워크 주소를  192.168.56.30로 설정했기 때문에 Remote host를 Vagrant가 생성한 쿠버네티스 마스터 노드의 IP주소로 설정해준다.

 

 

6. Pod 확인

 

해당 명령어를 통해 현재 클러스터 내 모든 파드들이 정상적으로 올라와 있는지 확인해준다.

k get pods -A

 

 

 

7. 쿠버네티스 대시보드 접속