Home 개발자로써 k8s 사용할 때 실제로 편한점
Post
Cancel

개발자로써 k8s 사용할 때 실제로 편한점

k8s가 좋은 건 알겠는데, DevOps로서가 아닌 개발자로써 편리한 점은 무엇인지 알아보겠습니다. 개발자로써 장점을 알아보는 이유는 k8s의 도입이 마냥 쉽지는 않지만, 도입했을 때의 장점을 피부로 느끼는 건 개발자이기 때문입니다.

클릭 몇 번으로 새로운 버전의 애플리케이션을 띄울 수 있다는 점

  • 자동화된 배포 파이프라인: K8s와 CI/CD 도구를 연동하면 코드 변경이 이루어질 때마다 자동으로 빌드, 테스트, 배포가 가능합니다. 예를 들어, GitLab CI/CD나 Jenkins와 같은 도구를 사용하면 코드가 리포지토리에 푸시될 때마다 자동으로 새로운 버전의 Docker 이미지를 빌드하고, 이를 K8s 클러스터에 배포할 수 있습니다.

중단되지 않는 안전한 배포 가능

  • 롤링 업데이트: K8s는 롤링 업데이트 기능을 통해 새로운 버전을 배포할 때 기존의 Pod를 점진적으로 교체합니다. 이를 통해 애플리케이션이 중단되지 않고 지속적으로 서비스될 수 있습니다. 롤링 업데이트는 동시에 많은 Pod를 교체하지 않고, 하나씩 또는 소수씩 교체하여 안정성을 높입니다.
  • 헬스 체크 및 준비 상태 검사: K8s는 Pod의 상태를 모니터링하고, 헬스 체크와 준비 상태 검사를 통해 Pod가 정상적으로 실행 중인지 확인합니다. 새로운 버전의 Pod가 준비 상태가 되지 않으면, K8s는 이를 배포하지 않고 롤백하거나 대체할 수 있습니다.
  • 자동 롤백: 배포 중 문제가 발생하면, K8s는 자동으로 이전 버전으로 롤백할 수 있습니다. 이를 통해 배포 중단 없이 안정성을 유지할 수 있습니다.
  • 다양한 배포 전략: K8s는 롤링 업데이트, 블루-그린 배포, 카나리 배포 등 다양한 배포 전략을 지원합니다. 이를 통해 새로운 버전을 점진적으로 배포하거나, 트래픽의 일부만 새로운 버전으로 라우팅하여 안정성을 높일 수 있습니다.

트래픽에 따라 Pod이 늘어났다, 줄었다 하는 기능들

  • 자동 스케일링: K8s는 Horizontal Pod Autoscaler(HPA) 기능을 통해 트래픽 변화에 따라 자동으로 Pod의 수를 조절할 수 있습니다. HPA는 CPU 사용량, 메모리 사용량, 사용자 정의 메트릭 등을 기반으로 Pod 수를 동적으로 조절합니다. 예를 들어, 트래픽이 증가하면 더 많은 Pod를 생성하고, 트래픽이 감소하면 Pod 수를 줄여 자원을 효율적으로 사용합니다.
  • 클러스터 오토스케일링: 클러스터 오토스케일링은 K8s 클러스터 내의 노드 수를 자동으로 조절하는 기능입니다. Pod의 리소스 요청이 증가하면 노드를 추가하고, 리소스 사용이 감소하면 노드를 줄여 클러스터 자원을 효율적으로 관리합니다.
This post is licensed under CC BY 4.0 by the author.

k8s가 등장하게 된 인프라의 역사

K8S 도입 시 함께 따라오는 세트 메뉴

Trending Tags