ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 쿠버네티스 배포 실습
    Cloud/Kubernetes 2023. 2. 12. 23:56

    이번 실습에서는 이전에 만들었던 my-web-app 이미지를 기반으로 쿠버네티스에 애플리케이션을 배포하고, 애플리케이션을 노출하고, 접속을 테스트하며, v1 버전에서 v2 버전으로 롤링 업데이트를 통해 버전 변경 배포를 하는 과정을 실습해보겠습니다.

    my-web-app 이미지가 없다면 도커 실습 (https://dennis.k8s.kr/3) 을 먼저 진행하고 오시길 바라겠습니다.

    사전 준비 사항

    • 쿠버네티스 클러스터
    • kubectl CLI

    단계 1: 쿠버네티스 디플로이먼트 만들기

    다음과 같이 kubectl 명령어를 사용하여 쿠버네티스 디플로이먼트를 만듭니다.

    kubectl create deployment my-web-app --image=my-web-app:v1

    위 명령어는 my-web-app 디플로이먼트를 만들고, my-web-app:v1 이미지를 사용하여 컨테이너를 실행합니다.

    단계 2: 서비스 만들기

    다음과 같이 kubectl 명령어를 사용하여 쿠버네티스 서비스를 만듭니다.

    kubectl expose deployment my-web-app --type=LoadBalancer --port=80 --target-port=80

    위 명령어는 my-web-app 디플로이먼트에서 실행 중인 컨테이너에 접근하기 위한 로드 밸런서 타입의 서비스를 만듭니다.

    단계 3: 서비스 접속 정보 확인하기

    다음과 같이 kubectl 명령어를 사용하여 서비스의 접속 정보를 확인합니다.

    kubectl get services

    위 명령어는 모든 서비스의 목록을 출력합니다. my-web-app 서비스의 EXTERNAL-IP를 찾아서 브라우저에서 해당 IP로 접속하면, "This is version 1 of my web app." 메시지가 표시됩니다.

    단계 4: 버전 업그레이드

    이제 my-web-app 이미지의 v2 버전으로 롤링 업데이트를 진행해보겠습니다.

    다음과 같이 kubectl 명령어를 사용하여 디플로이먼트에 새로운 이미지를 배포합니다.

    kubectl set image deployment/my-web-app my-web-app=my-web-app:v2

    위 명령어는 my-web-app 디플로이먼트의 my-web-app 컨테이너 이미지를 my-web-app:v2 이미지로 변경합니다.

    단계 5: 롤링 업데이트 모니터링

    다음과같이 kubectl 명령어를 사용하여 롤링 업데이트를 모니터링합니다.

    kubectl rollout status deployment/my-web-app

    위 명령어는 디플로이먼트의 롤링 업데이트 상태를 모니터링합니다. 모든 파드가 Running 상태이면, 업데이트가 완료된 것입니다.

    단계 6: 버전 업그레이드 확인

    다시 my-web-app 서비스의 EXTERNAL-IP로 접속하여, "This is version 2 of my web app." 메시지가 표시되는지 확인합니다. 버전 업그레이드가 정상적으로 이루어졌습니다.

    단계 7: 컨테이너 삭제

    다음과 같이 kubectl 명령어를 사용하여 디플로이먼트와 서비스를 삭제합니다.

    kubectl delete deployment my-web-app kubectl delete service my-web-app

    위 명령어는 my-web-app 디플로이먼트와 서비스를 삭제합니다.

    이제, my-web-app 이미지를 기반으로 쿠버네티스에 애플리케이션을 배포하고, 애플리케이션을 노출하고, 접속을 테스트하며, v1 버전에서 v2 버전으로 롤링 업데이트를 통해 버전 변경 배포를 해보았습니다. 이를 통해 쿠버네티스에 대한 이해도를 높일 수 있습니다.

Designed by Tistory.