본문 바로가기

EKS

(7)
[EKS] CI/CD (Jenkins, ArgoCD) Jenkins CI/CD(Continuous Integration and Continuous Delivery)에 널리 사용되는 오픈 소스 자동화 서버입니다. 수백 개의 플러그인을 사용하여 빌드, 테스트 및 배포와 같은 개발 파이프라인의 다양한 단계를 자동화하여 사실상 모든 프로젝트를 구축하고 테스트할 수 있도록 지원합니다. Jenkins는 개발 프로세스에 대한 지속적인 피드백과 가시성을 용이하게 하여 팀이 문제를 조기에 감지하고 업데이트를 보다 효율적으로 배포할 수 있습니다. ArgoCD GitOps 방법론을 따르는 선언적인 Kubernetes 네이티브 연속 전달 도구입니다. Git 리포지토리에 애플리케이션 리소스를 정의하여 애플리케이션의 라이프사이클을 보다 제어되고 예측 가능한 방식으로 관리할 수 있습..
[EKS] Security 컨테이너 기반의 오케스트레이션 플랫폼인 Kubernetes와 Amazon EKS는 현대적인 애플리케이션 배포 및 관리를 위한 강력한 도구입니다. 그러나 이러한 플랫폼에서는 보안적인 측면에서 고려해야 할 여러 가지 취약점이 존재합니다. 이에 대비하여 다음과 같이 적절한 보안 정책과 메커니즘을 구현하여 클러스터 및 애플리케이션의 안전성을 확보할 수 있습니다. Kubernetes(K8s) 인증 및 인가 Kubernetes는 클러스터의 보안을 유지하기 위해 인증 및 인가 메커니즘을 제공합니다. 이러한 메커니즘을 통해 클러스터의 자원에 대한 접근을 관리하고 보호할 수 있습니다. Amazon EKS(Elastic Kubernetes Service) 인증 및 인가 Amazon EKS는 AWS에서 호스팅되는 Kuber..
[EKS] Autoscaling Amazon EKS에서의 Autoscaling은 Kubernetes 자체의 Autoscaling 기능과 AWS의 클라우드 인프라를 결합하여 더욱 강력하고 유연한 확장성하기 때문에 리소스를 효율적으로 관리하고 비용을 최적화할 수 있습니다. HPA (Horizontal Pod Autoscaler) CPU 사용량과 같은 메트릭을 기반으로 파드의 수를 자동으로 조정하여, 트래픽 변화에 따라 적절한 서비스 수준을 유지합니다. KEDA (Kubernetes Event-Driven Autoscaling) 이벤트 기반의 소스로부터 메트릭을 수집하여 HPA를 확장합니다. 이를 통해 이벤트 기반의 작업량에 효과적으로 대응할 수 있습니다. VPA (Vertical Pod Autoscaler) 파드의 CPU와 메모리 할당량을..
[EKS] Observability 1. Logging in EKS Amazon Elastic Kubernetes Service (EKS)에서 로깅은 클러스터의 작업 및 이벤트에 대한 정보를 기록하고 분석하는 프로세스입니다. 이를 통해 애플리케이션 및 인프라의 상태를 모니터링하고, 문제를 식별하고, 보안 및 운영 요구 사항을 충족시키는 데 도움이 됩니다. EKS에서는 주로 다음과 같은 로깅 옵션을 사용합니다. Amazon CloudWatch Logs EKS 클러스터의 로그를 Amazon CloudWatch Logs로 전송하여 저장할 수 있습니다. 로그 그룹을 생성하고, 로그 스트림에 로그를 전송하여 모니터링 및 분석합니다. Kubernetes API 서버, 컨트롤 플레인 구성 요소, 워커 노드의 애플리케이션 로그 등을 수집할 수 있습니다...
[EKS] AWS EKS의 Storage & Nodegroup 1. Kubenetes Storage 파드(컨테이너) 환경에서 별도의 마운트를 진행하지 않는다면 데이터는 컨테이너가 종료될 경우 모두 삭제됩니다. 즉, 상태가 저장되지 않는(Stateless) 형태로 동작합니다. 하지만 Kubenetes로 운영을 하다보면 DB(데이터베이스)와 같이 데이터가 보존될 필요가 있는 경우가 생기게 되며, Kubenetes에서는 PV/PVC를 통해 데이터를 마운트 시켜 상태를 보존할 수 있는 Stateful 형태로 관리할 수 있습니다. Persistent Volume(PV)은 실제 스토리지 볼륨으로 PV는 Kubernetes Pods의 수명 주기와 별개로 자체의 수명 주기를 가집니다. 예를 들어 NFS, AWS EBS, Ceph등을 사용할 수 있습니다. 접근 모드(Access m..
[EKS] AWS EKS의 Networking (VPC CNI, LB Controller) 1. AWS VPC CNI 1-1) K8S CNI 란? Container Networking Interface의 약어로, K8S 클러스터 내에서 컨테이너 간 통신을 관리하는 인터페이스입니다. K8S에서는 CNI를 통해 다음과 같은 네트워크 기능을 제공합니다. Pod간 통신, 네트워크 정책 및 보안(pod간 통신 차단 등), 외부 리소스와 통신 K8S CNI 플러그인으로는 Calico, Flannel, Weave 등이 있습니다. 1-2) AWS VPC CNI 란? VPC CNI는 AWS에서 제공하는 EKS 클러스터에서 네트워킹을 관리하는 CNI 플러그인입니다. AWS VPC CNI 특징 VPC 기반의 네트워킹을 사용하여 pod간 통신을 처리합니다. 보안 그룹 및 ACL을 사용하여 네트워크 보안을 강화할 수..
[EKS] AWS EKS의 특징과 Cluster Endpoint 통신 방식 1. Amazon EKS 란? Amazon Elastic Kubernetes Service는 자체 Kubernetes 컨트롤 플레인 또는 노드를 설치, 운영 및 유지 관리할 필요 없이 Kubernetes 실행에 사용할 수 있는 관리형 서비스입니다. 1-1) EKS의 특징 여러 AWS 가용 영역에 걸쳐 Kubernetes 컨트롤 플레인을 실행하고 크기를 조정하여 높은 가용성을 보장합니다. 컨트롤 플레인은 제어 영역 인스턴스의 크기를 자동으로 조정하고, 비정상 제어 영역 인스턴스를 감지하고 교체하며, 자동화된 버전 업데이트 및 패치를 제공합니다. 여러 AWS 서비스와 통합할 수 있습니다. 컨테이너 이미지 저장소 Amazon ECR 로드 분산을 위한 ELB 인증 IAM (보안 주체 및 액세스 사용) 노드 격리..