목록 보기
AWS 서비스를 활용한 Kubernetes 클러스터 구축
데브옵스

AWS 서비스를 활용한 Kubernetes 클러스터 구축

타다
타다
2019년 3월 19일

두줄요약

AWS 환경에서 gRPC 트래픽, Pod별 IAM, 로그·모니터링을 고려한 Kubernetes 구성 방식을 소개했습니다. NLB·NGINX와 Prometheus, Cluster Autoscaler의 선택 이유와 운영 주의점을 정리했습니다.

구조와 흐름

  • NLB → NodePort → NGINX Ingress Controller → 내부 서비스 Pod의 외부 HTTP·gRPC 트래픽 경로
  • fluentd DaemonSet의 컨테이너 로그 수집·CloudWatch Logs 전송, Prometheus·Grafana·Alertmanager 기반 지표 시각화·알림
  • HPA의 Pod 확장과 Cluster Autoscaler의 EC2 오토스케일링 그룹 Desired Capacity 조정 연계

선택 이유

  • gRPC 지원과 Ingress별 ALB 생성 비용을 고려한 NGINX Ingress Controller 선택
  • 대량 연결 처리 시 웜업이 필요한 Classic ELB 대신 NLB 선택
  • Pod별 IAM 역할을 위한 kube2iam, 컨테이너 단위 모니터링 비용을 고려한 Prometheus 선택

성능/운영 포인트

  • NodePort 서비스와 오토스케일링 그룹 연결을 통한 NLB 직접 구성
  • Spring Boot Actuator·Micrometer와 ServiceMonitor 기반 애플리케이션 지표 수집
  • Cluster Autoscaler의 EC2 API 권한, 오토스케일링 그룹 자동 발견 태그 설정

주의할 점

  • NLB TLS termination의 ALPN 설정 제약으로 NGINX 수준 TLS 암호화 처리
  • 다중 AZ 오토스케일링 그룹의 예기치 않은 인스턴스 종료 방지를 위한 AZ별 그룹 분리

다음 읽기

#Kubernetes 주제를 이어서 읽기

서비스 중단 없이 Amazon EKS로 옮긴 이야기

kops로 운영하던 Kubernetes 클러스터를 Amazon EKS로 무중단 이전한 과정을 공유했습니다. Terraform·Helm·Route 53 가중치 DNS로 서비스 재배포와 트래픽 점진 전환을 수행했습니다.

타다
타다
데브옵스
전체 보기

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...