Web Backend

Kubernetess

Atriel 2025. 4. 7. 16:20

Kubernetess란?

컨테이너화된 애플리케이션배포, 관리, 확장을 자동화하는 오픈소스 플랫폼

구글이 내부적으로 사용하던 Borg 시스템의 경험을 바탕으로 오픈소스로 공개한 것이 쿠버네티스입니다.

쿠버네티스를 사용하면 서비스의 배포 및 확장을 자동화, 안정적인 서비스 운영과 관리 비용 절감

장애 발생 시 자동으로 복구하거나, 필요에 따라 자원을 유연하게 확장 가능

현대의 대규모 서비스 운영에 필수적인 도구로 쓰임

 

상태 관리 (원하는 상태를 선언 → 계속 유지): 고가용성

   - 오토스케일링 / 롤링 업데이트 / 셀프힐링

              오토스케일링: 서비스 크기에 따라서 CPU, 메모리 할당량이 자동으로 조절됨

자동화된 배포와 확장

  - 운영 비용 및 인적 실수 감소

고가용성 보장

  - 장애 발생 시 자가 복구(self-healing) 가능

자원 효율성 극대화

  - 리소스 최적화를 통한 비용 절감

확장성 및 유연성 제공

  - 대규모 서비스 운영과 신속한 기능 업데이트 가능
           여러 노드를 연결해 여러 컴퓨터를 클러스터 컴퓨터로 운영가능

 

 

 

 

 

 

 

Kubernetes 사용하는 Flow (개발자 / 일반 서비스 사용자)

 

 

 

Docker 리소스와 대응되는 Kubernetes 리소스

 

컨테이너 표준: CNCF

클라우드 네이티브 컴퓨팅 파운데이션

클라우드 네이티브 표준을 지키는 도구들이 개발되는 곳

https://www.cncf.io/projects/kubernetes/

쿠버네티스도 CNCF 프로젝트 중 하나에서 발전

https://www.cncf.io/projects/   (graduate project들)

 

 

 

이론적인 부분 기본 개념만 정리했지만

내용이 너무많아서

직접 해보면서 계속 들러서 보고 이해하는 방식으로 접근할 예정

 

이제 이전글에서 설치했던

minikube를 켜보자

[이전글]

 

Kubernetess 시작하기

https://minikube.sigs.k8s.io/docs/start/?arch=%2Fwindows%2Fx86-64%2Fstable%2F.exe+download minikube startminikube is local Kubernetes, focusing on making it easy to learn and develop for Kubernetes. All you need is Docker (or similarly compatible) contain

atriel.tistory.com

 

 

#Window Powershell 실행하기

kompose도 미리설치하기
curl -L https://github.com/kubernetes/kompose/releases/download/v1.26.0/kompose-windows-amd64.exe -o kompose.exe 
(안되면 -L 빼고)

#실행
minikube start

#상태확인
minikube status

#대쉬보드 확인해보기
minikube dashboard

ctrl+C로 대쉬보드종료하고

 

https://github.com/inspire12/likelion-infra

 

GitHub - inspire12/likelion-infra

Contribute to inspire12/likelion-infra development by creating an account on GitHub.

github.com

해당 깃파일을 fork해와서

k8s-start-practice 환경에서 진행했다

 

실행: likelion-infra git switch feature/k8s-start-practice

deployment/inspire12/kubernetes/likelion/

 

 

실행 전에 해야할..

minikube 여서 해야하는 것들..

cd deployment/inspire12/kubernetes/likelion/
minikube image load likelion-backend:latest

 

 

+ local image는 인식 시켜줘야함..

minikube service --all

 

+ minikubenodePort 방식으로되기떄문에 아마 에러가 날것이다

 

 

ConfigMap 설정 추가 (conf 파일 입력)

kubectl create configmap nginx-config --from-file=default.conf=./conf/default.conf

를 추가해주고

 

cd deployment/inspire12/kubernetes/likelion/

kubectl apply -f ./

minikube service --all

하면~

 

3개의 팟이 잘실행되는걸 확인가능 아마 브라우저 3개가 자동으로 켜질것이다

 

 

grafana 모니터링 addon | 각종 addon 기능들 쉽게 추가 가능

minikube addons list

minikube addons list | grep grafana

없을 경우  helm 차트로 설치

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts

helm repo update

helm install prometheus prometheus-community/kube-prometheus-stack \

  --namespace monitoring --create-namespace

 

설치 후 확인

kubectl get pods,svc -n monitoring

kubectl port-forward svc/prometheus-kube-prometheus-prometheus -n monitoring 9090:9090

=> http://localhost:9090

kubectl port-forward svc/prometheus-grafana -n monitoring 3000:80

=> http://localhost:3000 admi/prom-operator

 

 

그래서 이걸 왜쓰냐~