[Kubernetes] Kubernetes + CI/CD 파이프라인 구축기
2023. 10. 16. 17:53
Infrastructure/Kubernetes
저는 회사에서 두 개의 팀에 소속되어 서비스를 구축하고 개발하고 있습니다. 1팀(첫 번째 팀)은 Java".jar" 파일을 클라우드 가상 머신에 배포하는 방식으로 작업하고 있고, 2팀(두 번째 팀)은 쿠버네티스 환경에 Java 애플리케이션을 배포하는 방식을 사용하고 있습니다. 다양한 팀원들과 이야기를 나눈 결과, 2팀의 쿠버네티스 환경과 개발 플로우가 장기적으로 비용 효율적이고 개발 효율성을 높일 수 있다는 결론을 내리게 되어 1팀에도 쿠버네티스를 도입하기로 결정하였습니다. 제가 쿠버네티스 환경에서의 애플리케이션 개발 및 배포 경험이 있기 때문에 다른 팀원들이 쿠버네티스 환경에 쉽게 적응할 수 있도록 가이드를 제공하게 되었습니다. 다른 팀원들이 쿠버네티스에 애플리케이션을 배포하는데 참고할 수 있도록 쿠버..
[Kubernetes] Rolling Update 이슈와 해결 과정
2023. 9. 21. 18:18
Infrastructure/Kubernetes
최근 쿠버네티스에서 운영되는 프로덕션 애플리케이션을 배포(rolling update)하는 과정에서 클라이언트 요청이 중단되거나 거부되는 현상이 발생했습니다("client connection refused" 등의 에러 발생). 분명 deployment.yaml에 rollingUpdate를 수행하도록 설정했지만, 배포 과정에서 순단현상이 발생했습니다. spec: strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 0 replicas: 4 위 설정에서의 배포는 다음과 같이 동작합니다. 총 4개의 pod가 실행됩니다. 배포 시 새로운 버전의 반영은 순차적으로 수행됩니다. 새로운 pod 생성 새로운 pod가 준비상태(Ready)가 되면..