발표 소개와 목차
쿠버네티스 도입 배경, 배포 방법, 장점을 살리기 위한 설정, 운영 중 겪은 10가지 사례, 그리고 꿀팁을 다루겠다고 발표 구성을 안내하며 시작한다.
여러 서버로 구성된 클러스터에 여러 개발자의 애플리케이션을 한꺼번에 올려 관리하는 쿠버네티스(k8s) 개념을 설명한다. 파드, 서비스, 인그레스, 디플로이먼트 등 실제로 사용한 다섯 가지 핵심 리소스를 그림과 함께 하나씩 소개한다.
기존 VM 서비스는 건드리지 않고 신규 애플리케이션만 쿠버네티스로 병행 운영한 도입 전략을 설명한다. 이어 개발자가 소스를 작성하면 젠킨스가 빌드하고 NHN 클라우드 디플로이가 야믈 파일로 마스터노드에 배포를 요청하는 3단계 구조를 정리한다.
VM 시절엔 JVM 설치·스크립트 작업이 필요했지만 쿠버네티스는 파드만 하나 더 올리면 돼 배포가 간편하다. 여러 서버를 하나의 터미널로 보고, 롤백 시 컨테이너 생성 단계에서 문제가 나면 기존 파드로 계속 운영되는 장점을 시연으로 보여준다.
마스터노드가 반응이 없어 배포가 막힌 사례를 다룬다. 파드가 마스터노드에 잘못 배치돼 여유가 없던 것이 원인으로, `describe`로 확인하고 taint(얼룩)를 걸어 파드가 워커노드에만 배치되도록 해결한 과정을 설명한다.
파드 CPU·메모리 리소스 설정과 디플로이먼트 롤링 배포로 두 개씩 점진 배포하는 법을 다룬다. 또 배치 작업 파드가 CPU·메모리를 과하게 써 다른 파드에 장애를 준 사례를, 레이블과 어피니티로 클라이언트용 노드와 배치용 노드를 분리해 해결한다.
VM 시절 포트가 계속 바뀌어 ACL을 매번 다시 뚫던 문제를 인그레스 패스 기반 라우팅으로 해결한다. 하나의 진입점으로 요청을 받아 서비스별로 라우팅하면 iptables가 필요 없어지고 포트 관리 부담이 사라짐을 설명한다.
파드는 살아있지만 404가 나는 상황을 liveness 프로브로 자동 재시작하고, 배포 순단은 readiness 프로브로 준비 완료 후에만 요청을 받게 해 방지한다. 마지막으로 `-o wide` 옵션과 이벤트·로그 확인 팁을 공유하며 발표를 마무리한다.