eks 16

DownTime Zero를 통한 EKS 운영 안정성 높이기

OverviewEKS 서비스 워크로드 운영 안정성을 높이기 위해 본 글에서 아래 항목을 테스트하겠습니다.서비스 무중단을 위한 애플리케이션 파드 내 ReadinessGate, preStop 설정 후 Downtime Zero 확인 Serivce Downtime Zero 구성EKS 를 비롯한 쿠버네티스에서 롤링 업데이트 또는 노드 변경에 따라 파드 재기동을 자주 발생합니다.일반적으로 파드가 이중화되고 파드를 하나씩 롤링업데이트하면 서비스 이상이 없을 것으로 예상하지만,,Cloudwatch를 비롯한 대시보드 확인시 ELB 5XX가 일부 확인됩니다.이는 AWS 타겟 그룹에서 파드 등록 및 삭제 과정에서 발생합니다.AWS 로드밸런서 컨트롤러는 타켓 그룹에 새 파드를 등록하고, 기존 파드를 동시에 제거합니다.대상 그..

Cloud Tech 2024.11.02

Cilium Service Mesh on EKS

OverviewAWS 블로그 글 Getting Started with Cilium Service Mesh on Amazon EKS 를 기반으로 EKS에서 Clium 기반의 Service Mesh를 구성하고 구성 요소를 확인하겠습니다.Sidecarless Service Mesh for Cilium? Cilium 은 eBPF(Extended Berkeley Packet Filter)를 기반으로 하는 K8s CNI Plugin 입니다.BPF는 Kernel에 Snadbox 형태로 설치되어 패킷을 필터링하고 제어할 수 있습니다. 기존 CNI 로 Iptables를 통해 패킷을 제어하게 되면 네임스페이스 간의 통신에서 오버헤드가 발생하지만, BPF는 커널에 내장되어 있어 성능향상과 패킷 추적을 기대할 수 있습니다...

Cloud Tech 2024.10.26

EKS VPC CNI 네트워크 최적화 설정과 Kubeflow에서의 istio 구성

OverviewEKS 내 VPC CNI 네트워킹 모범사례를 실습하고, Kubeflow에서의 Istio 구성을 확인하겠습니다. EKS 네트워킹 모범사례 정리M/L 및 데이터 워크로드 기반의 EKS 프로젝트(DoEKS) 에서 AWS VPC CNI고려사항을 정리하고 실습하겠습니다. Networking for Data | Data on EKSVPC and IP Considerationsawslabs.github.io  VPC와 IP 고려 사항1. EKS 클러스터에서의 Warm Pool 유지AWS 각 인스턴스 유형은 최대 네트워크 인터페이스 수, 네트워크 인터페이스 당 최대 개인 IP를 지원합니다.aws ec2 describe-instance-types \ --filters "Name=instance-typ..

Cloud Tech 2024.10.20

AWS Load Balancer Controller 기능 분석

OverviewEKS 클러스터에서 네트워크 addon인 AWS Load Balancer Controller 가 제공하는 기능들을 실습하여 동작 이해와 AWS 콘솔에서의 형상을 확인하겠습니다. AWS Load Balancer ControllerAWS ELB를 자동으로 관리하며, 쿠버네티스 리소스(Ingress, SVC)를 AWS ELB에 매핑시켜 ELB의 트래픽을 쿠버네티스 서비스 리소스로 라우팅을 시켜주는 컨트롤러입니다. ELB를 자동으로 관리한다는 말은 쿠버네티스 서비스에 annotation을 정의하면 옵션에 맞게 아래 AWS ALB, NLB을 생성, 삭제, 수정시켜 쿠버네티스 리소스에 매핑시켜줍니다.It satisfies Kubernetes Ingress resources by provisioning..

Cloud Tech 2024.10.13

Calico CNI 이해

Overviewk8s CNI인 Calico를 Mac M1 환경에서 VM를 통해 배포해보고, 구성 요소를 확인하겠습니다. 실습 환경 구성쿠버네티스 구성 환경은 Vagrant를 통해 Mac 에서 구성하겠습니다.네트워크 서브넷 192.169.10.0/24, 192.168.20.0/24 두 개에 서버를 구성하여 쿠버네티스 클러스터를 구성합니다. 우측 Router 서버에 각 서브넷의 네트워크 인터페이스를 연결하여 통신이 가능하도록 구성할 예정입니다.(KANS3 스터디 참고) 필자 환경은 MAC M1 에서 진행했습니다. 실습 환경으로 최소 vCPU 4, 12GiB RAM이 필요합니다 MaC M1에서의 Vagrant 환경 구성은 sejkim님의 블로그를 참고하였습니다.맥 환경 구성을 위한 OS, 네트워크 설정 등의 ..

Cloud Tech 2024.09.20

EKS에서 Atlantis 구성하기

Overview오픈소스 Terraform Runner 툴인 Atlantis를 이해하고, EKS 환경에서 구성하겠습니다. AtlantisAtlantis는 Terraform 기반 인프라 코드 변경을 관리하는 자동화 도구로,GitHub, GitLab, Bitbucket 등과 통합되어 PR(Pull Request) 이벤트를 통해 plan 및 apply 명령을 실행합니다.Terraform Cloud와 비교하여 Atlantis는 테라폼 부가 기능이 없지만,비용이 무료이며 자체 호스팅할 수 있다는 장점이 있습니다.아틀란티스 아키텍처는 다음과 같습니다.VCS Controller(코드 관리 시스템 컨트롤러)에서 코드 관리 툴의 Comment, PR 이벤트를 핸들링하여 테라폼 명령어을 수행합니다. 관련 내용Runner에서..

Cloud Tech 2024.07.14

GitOps Bridge 패턴을 활용한 EKS Blue/Green 워크로드 마이그레이션 전략

OverviewGitOps Bridge 패턴을 활용하여 EKS 클러스터 간의 Blue/Green 워크로드 마이그레이션 전략을 소개합니다. 해당 글은 Amazon EKS Blueprints for Terraform 의 예제(blue-green-upgrade) 를 참고하여 작성하였습니다.EKS 멀티 클러스터 버전 업그레이드해당 전략은 EKS 버전 업그레이드를 위해 구성되었습니다. EKS 버전은 기간이 지남에 따라 지원이 종료되며 추가 지원 종료일 이후에는 버전이 자동으로 업그레이드 됩니다. 자동으로 업그레이드되면 되는거 아니야 라고 할 수 있지만, 버전간의 호환성 및 워크로드의 순단이 발생함으로 사전에 대비가 필요합니다.표준 지원 종료일 이후에는 추가 지원 종료일까지 비용이 약 5배 정도 더 부과됩니다.EK..

카테고리 없음 2024.04.27

SonarQube를 활용한 EKS CleanCode CI /CD 파이프라인 구축하기

Overview클린코드를 위해 SonarQube를 배포하고 AWS CodeSeries를 통해 CI /CD 파이프라인 구성하겠습니다.해당 문서는 EKS 워크샵을 참고하였습니다.CleanCodeCleanCode(이하 클린코드)는 읽기 쉽고 이해하기 쉬운 코드를 뜻합니다. 클린 코드를 유지하면 소프트웨어의 가독성, 유지 보수성 및 신뢰성을 향상시켜 장기적인 개발 비용을 절감할 수 있습니다.유지보수의 용이성: 명확하고 이해하기 쉬운 코드는 유지보수 시 시간과 비용을 줄여줍니다.버그 감소: 잘 구조화되고 명확한 코드는 오류 발생 가능성을 낮춥니다.기술 부채 관리: 클린 코드 접근 방식은 기술 부채를 효과적으로 관리하고 미래의 확장성 및 유연성을 보장합니다.SonarQube클린코드를 유지하기 위한 툴로 SonarQ..

Cloud Tech 2024.04.20

쿠버네티스 오픈소스, Kyverno 이해하기

Overview 쿠버네티스 정책 기반의 솔루션인 Kyverno 을 소개하고 원리와 사용 방법을 이해하겠습니다. Kyverno Kyverno는 Kubernetes용으로 설계된 정책 엔진을 포함하는 PaC(Policy-as-Code) 솔루션입니다. Kyverno를 통해 PSA/PSS 설정을 보완하고, 포드 보안을 강화할 수 있습니다. PSA (Pod Security Admission) 와 PSS (Pod Security Standards) 둘 다 쿠버네티스에서 제공하는 파드 보안 기능으로 PSA는 보안 기준을 강제하는 기능이며, PSS는 파드가 준수해야 할 구체적인 보안 기준을 제공합니다. Kyverno 정책 엔진은 Kubernetes 클러스터에 설치되고 Kubernetes API 서버에 동적 승인 컨트롤러..

Cloud Tech 2024.04.12

Karpenter 고려사항

Overview 카펜터에 대해 검색하면 여러 도입 사례를 확인할 수 있습니다. 도입 사례들을 참고하여 운영 고려사항들을 정리하겠습니다. 노드 자체 제어 기능 비활성화 Karpenter에서는 비용 감소화를 목적으로 노드를 자체 중단 제어합니다. 다만, 파드 레벨에서 라이프사이클이 적용되지 않은 상태라면 순단이 발생할 수 있습니다. 파드 종료 라이프사이클로 prestop 이나 PDB 을 설정하는 방법은 제니퍼소프트 테크 블로그 글을 참고해주세요. 다만, 상황에 따라 PDB와 라이프사이클 설정이 할 수 없는 상황이라면 중단 제어를 자체적으로 중지해야 합니다. 아래 NodePool annotation을 통해 중지 제어를 중지할 수 있습니다. 동일한 이유로 Drift 기능의 비활성화도 고려해야 합니다. Drift..

Cloud Tech 2024.04.07