[쿠버네티스] 서비스 생성 + 부하 테스트

개발냥이·2025년 5월 13일

데브코스

목록 보기
55/75
post-thumbnail

쿠버네티스란

컨테이너 오테스트레이션 솔루션과 도커와 잘 어울리는 실행 환경 구성 도구이다.

⚠️오케스트레이션 : 여러 개의 컴퓨터 시스템, 애플리케이션 및/또는 서비스를 조율하고 관리

다음과 같은 기능을 제공하여 쿠버네티스를 많이 사용하고 있다.

  • 컨테이너 밸런싱
  • 트래픽 로드 밸런싱
  • 동적 수평 스케일링 : 시스템 자원을 효율적으로 활용
  • 오류 복구

서비스 생성하기

쿠버네티스에서 Pod 또는 Deployment를 외부에서 접근할 수 있도록
서비스(Service)를 생성하는 과정이다.

1. docker desktop 세팅

도커 데스크탑 설정에서 쿠버네티스 활성화 및 재시작

kubectl get nodes

이 명령어 후 에러가 없다면 성공적

2. 컨테이너 이미지를 이용한pod 생성

kubectl run <포드 이름> --image=<이미지 지정>

3. k8s 디플로이먼트 생성

kubectl create deployment dpy-<포드 이름> --image=<이미지 지정>

4. 클러스터 바깥에서 사용해보기 (node port)

kubectl expose pod <포드 이름> --type=NodePort --name=pod-svc --port=< 포트번호>

이후 kubectl get svc 입력했을 때
포드 이름이 잘보이면 잘 생성된 것

curl <로컬호스트:포트번호>
이 명령어 입력하면 클러스터를 바깥에서도 접속할 수 있는 모습

⚠️pod뿐 아니라 deployment도 가능함


부하 테스트

쿠버네티스는 부하가 발생했을 때 어떻게 대처하는 지 알아보자!!

의도적 부하

kubectl run -it load-gen --rm --image=busybox --restart=Never -- /bin/sh -c "while true; do sleep 0.01; wget -q -O- http://php-apache; done"

0.1초마다 요청을 보내 일부러 부하를 시키는 모습

부하로 인해 pods가 많이 생성됨

CPU도 250%로 크게 오름

📌이제 부하를 멈춰보겠다.

부하를 중지하자 쿠버네티스의 동적 스케줄링으로 안정을 찾은 모습

즉 쿠버네티스는 자율적으로 장애를 감지하고 복구하면서 안정적인 시스템 운영


🤔후기

쿠버네티스에 대해 공부하면서 pods, volume 등등 못보던 개념들이 등장했다.
아직은 익숙하지 않고 어렵지만 하다보면 적응할 것이라 믿는다.

profile
웹 개발자가 되고픈

0개의 댓글