문제점: Docker만으로는 수십, 수백 개의 컨테이너를 운영 환경에서 안정적으로 관리하기 어렵습니다.
쿠버네티스: 이러한 복잡한 문제들을 해결하기 위한 컨테이너 오케스트레이션(Container Orchestration) 플랫폼입니다. 컨테이너화된 애플리케이션을 대규모로 자동으로 배포, 스케일링, 관리하는 역할을 합니다.
replicas 수를 변경하면, 알아서 Pod를 2개 더 생성합니다.ClusterIP: 클러스터 내부에서만 통신할 때 사용. (기본값)NodePort: 개발/테스트 목적으로 외부에서 간단히 접근할 때 사용.LoadBalancer: 클라우드 환경(AWS, GCP 등)에서 외부 로드 밸런서를 자동으로 생성하여, 애플리케이션을 외부 인터넷에 정식으로 노출시킬 때 사용.애플리케이션의 설정(DB 주소 등)이나 민감한 정보(비밀번호, API 키)를 Docker 이미지에 직접 포함시키는 것은 매우 나쁜 관행입니다.
ConfigMap: 일반 설정 정보를 Key-Value 형태의 평문으로 저장합니다.
Secret: 민감한 정보를 Base64로 인코딩하여 저장합니다.
사용법: ConfigMap이나 Secret의 데이터를 Pod의 환경 변수나 볼륨 파일로 주입하여, 코드나 이미지의 변경 없이 설정만 독립적으로 관리할 수 있습니다.
EKS는 AWS에서 제공하는 완전 관리형 쿠버네티스 서비스입니다.
EKS의 역할: 쿠버네티스 클러스터의 "두뇌" 역할을 하는 컨트롤 플레인(Control Plane)의 설치, 관리, 고가용성, 업그레이드를 AWS가 대신 처리해줍니다.
EKS 배포 흐름:
eksctl): eksctl이라는 명령줄 도구를 사용하면, 클러스터 생성에 필요한 복잡한 AWS 리소스들을 자동으로 프로비저닝할 수 있습니다.kubectl): 로컬 컴퓨터에서 kubectl을 사용하여, 작성해 둔 Deployment, Service YAML 파일을 EKS 클러스터에 적용(apply)합니다.LoadBalancer로 지정하면, EKS는 AWS의 실제 로드 밸런서(ELB/NLB)를 자동으로 생성하고 Service에 연결하여 애플리케이션을 외부에 안정적으로 노출시킵니다.