[클라우드/쿠버네티스] 쿠버네티스 배포

    728x90
    반응형

     

    출처

    1) Cloud Native DevOps with Kubernetes / 쿠버네티스를 활용한 클라우드 네이티브 데브옵스

     

     

    Deployment

    1) 일반적으로 Replication Controller(RC)를 이용해서 배포하지 않고 Deployment라는 추상적인 개념을 사용

    2) 애플리케이션 인스턴스를 생성하고 업데이트하는 역할

    3) 쿠버네티스가 애플리케이션의 인스턴스를 어떻게 생성하고 업데이트해야 하는지를 지시

    4) Deployment가 생성되면 쿠버네티스 마스터 노드가 해당 애플리케이션 인스턴스를 클러스터의 개별 워커 노드에 스케줄링

    5) 애플리케이션 인스턴스가 생성되면 쿠버네티스 Deployment Controller는 지속적으로 인스턴스를 모니터링

     

     

    쿠버네티스 배포 방식

    1) Recreate Deployment

    2) Blue/Green Deployment

    3) Rolling Update

    4) Canary Deployment

    5) A/B Testing Deployment

     

     

    Recreate Deployment

    1) 기존 Pod들을 모두 제거한 후 새 버전을 Pod를 한 번에 생성하는 방식

    2) 잠시 동안 서비스가 중단될 수 있음

    3) 롤백이 필요한 경우 이전 버전으로 되돌릴 수 있음

    $ kubectl apply -f example.yaml

     

     

    Blue/Green Deployment

    1) 새 버전을 배포하면 트래픽을 Green환경으로 전호나하여 Blue 환경을 완전히 대체(Green이 정상적으로 배포되면 Blue를 중단)

    2) Blue와 Green 두 개의 독립적인 환경(버전)을 준비하고, 트래픽을 한 번에 하나의 환경에만 전달

     

     

    Rolling Update

    1) 가장 많이 사용되는 배포 방식 중 하나

    2) 애플리케이션을 서비스 중단 없이 안전하게 업데이트하는 전략(무중단 서비스) 

    $ kubectl rollout status deployment sample-deploy

     

     

    Rolling Update 특징

    1) 가용성 보장: 새로운 버전의 POD를 점진적으로 배포하면서 기본 버전의 POD를 제거

    2) 안정성 유지: 롤링 업데이트 중에도 쿠버네티스 리소스 사용량을 모니터링하고 조정할 수 있음

    3) 헬스체크: 롤링 업데이트 중에는 새로운 POD가 정상적으로 작동하는지 확인하기 위해 헬스체크가 수행, 이로 인해 장애가 발생한 POD는 롤백되고 안정적인 상태에서 업데이트가 진행됨

    4) 롤백 지원: 업데이트 과정 중 문제가 발생하면 쿠버네티스는 자동으로 롤백하거나 수동으로 롤백할 수 있는 기능을 제공

     

    728x90
    반응형

    댓글