EKS (14) 썸네일형 리스트형 [DevOps] EKS 환경에서 Helm으로 Jenkins 안전하게 구축하기 1. 개요AWS 환경에서 Jenkins를 안정적이고 효율적으로 운영하고 싶다면 Helm으로 Jenkins를 설치하는 것이 정신 건강상 좋다고 본다. 왜냐하면 EC2 환경에서의 Agent 연결하는 방식과 다르게 Controller와 Agent를 단순 values.yaml 파일만 가지고 분리하는 것도 굉장히 쉽고 Controller를 재시작해도 EBS Volume을 붙여둔다면 안전하게 재시작할 수 있기 때문이다. 다음의 내용들을 고려하여 작업한다고 가정한다. - Agent, Controller의 분리- Controller를 자유롭게 재시작할 수 있도록 EBS Volume 붙이기- docker 명령어를 agent pod에서 사용할 수 있도록 하기- 모니터링을 수월하게 할 수 있도록 하기... 참괴 : 이 글.. [EKS] Spot Instance를 안전하게 처리하는 방안에 대해서 1. 개요요즘에는 대부분 Karpenter를 활용해서 EKS Node를 관리한다. Karpenter에서는 Spot Instance를 손쉽게 활용할 수 있기 때문에 Spot Instance를 활용하는 곳들이 많을 것이다. Spot Instance는 미사용 EC2 용량을 온디맨드 가격에 비해 최대 90% 저렴하게 사용할 수 있지만 언제든지 AWS에 의해 회수당할 수 있기 때문에 안정성이 떨어질 수 있다는 단점이 있다. 이 때 다음의 문제가 발생할 수 있다. 1. Deployment가 1대인데 파드가 떠있는 Node가 Spot Instance이기 때문에 강제로 evict 당한다면, 기존 Pod는 terminating이 되고 신규 pod는 Pending -> ContainerCreating -> Running .. [MLOps] Kubernetes에서 CUDA MPS 손쉽게 활용하기 1. 개요CUDA MPS(Multi-Process Service)를 활용하여 GPU 리소스를 컨테이너간 Sharing 하여 활용하는 방법에 대해 알아본다. GPU 노드의 GPU 자원을 나눠 사용하는 방법에는 크게 3가지가 존재한다. - Time-Slicing- MIG- MPS 이 중 MIG는 비싼 GPU 노드에서만 사용 가능하니 패스하고 Time-Slicing, MPS만 필자는 알아보았다. Time Slicing은 별도의 노력 없이 Nvidia-Device-Plugin의 단순한 설정만으로 쉽게 설정 및 적용이 가능하다. 하지만 GPU Memory의 격리가 없고 지속적인 Context Switching이 발생하여 Overhead가 높다는 단점이 있다. 그렇다면 이를 해결하기 위해 MPS(Multi Proc.. Kubernetes GPU Operator와 Time Slicing 간단히 알아보기 EKS에서 MLOps를 할 수 있도록 공부중인데 그 과정들을 하나씩 정리해보려 한다. 그 첫 번째로 GPU Operator와 Time Slicing에 대해서 정리해본다. GPU Operator란? NVIDIA GPU Operator는 k8s 클러스터 내에서 NVIDIA 계열의 GPU 노드로 파드를 편하게 관리할 수 있도록 도와주는 툴이다. Operator 패턴이란? Operator 패턴이란 CR(Custom Resource) 파일을 우리가 k8s에게 제공하면 k8s에 파드 형태로 떠있는 Operator가 이를 지속적으로 확인하면서 Custom Resource에 정의된 spec 대로 원하는 리소스들(ex. NVIDIA Device Plugin과 관련된 파드 및 Service Account, Role, .... [DOIK 스터디 2기] Percona Operator for MongoDB 개념 및 실습 DOIK 스터디 2기 - 4번째 글로 Percona Operator for MongoDB 오퍼레이터에 대해서 정리해본다. 공부하는 내용을 정리하는 글이라 부정확할 수 있음 주의 MongoDB 개념에 대해서 간단히 정리해보기 Document : MongoDB에서 데이터를 저장하는 단위이며 JSON 형태로 표현되며 저장될 때는 Binary JSON(BSON) 경량 형태로 저장되기 떄문에 더 빠르고 효율적으로 데이터를 저장할 수 있다. >> 모든 Document에는 “_id” 필드가 있고 없게 생성할 경우 ObjectId 타입의 고유 값을 저장한다. Collection : MongoDB Document(문서)의 모음이며 RDB의 Table과 유사함 > 컬렉션은 서브컬렉션을 가질 수 있지만 종속성은 없다. (e.. [AWS] 폐쇄망 EKS 환경에서 Squid Proxy를 활용하여 HTTP 아웃바운드 통신하기 1. 개요 페쇄망 환경에서 Squid Proxy를 통해 HTTP, HTTPS Proxy를 설정하는 방법에 대해 설명한다. 폐쇄망에서는 NAT Gateway나 NAT Instance를 사용하지 않기 때문에 내부에서 외부 인터넷망으로 접근이 불가능하다. 예를 들어 PG사에 결제한다거나 외부 택배사 모듈과 연동한다거나 등이 불가능한데, 이를 가능하게 하기 위해서는 1. Public Subnet에 프록시 서버를 구성하고 2. EKS Container에서는 프록시 서버를 통해 외부망에 접근함을 명시해줘야 한다. 필자는 Squid Proxy를 통해 폐쇄망에서 외부 인터넷망에 접근하도록 설정하였다. 2. Squid Proxy 설정 설치하는 방법은 인터넷에 아주 많이 나와있고 간단하기 때문에 설치 방법 설명은 생략한다.. [EKS] Data Transfer 비용 절감 작업 (istio destination rule, topology aware hints) EKS 상에서 Data Transfer 비용을 줄이기 위해 했던 노력들과 그 후기를 정리해본다. 결론을 말하자면 서비스 안정성이 더 우선이기에 Data Transfer 줄이기 위한 작업은 포기했다. 1. Data Transfer 발생 원인Data Transfer 비용은 크게 2가지에서 발생되었다. 1. NAT Gateway 비용 2. AZ 간 통신 비용 여기서 이제 Bytes 단위로 과금이 되는데 AZ 간 통신할 때 Network Bytes가 많으면 그만큼 과금이 된다고 보면 된다. 본 글에서는 AZ 간 통신 Data Transfer 비용에 대해서 다룬다.2. EKS에서 Data Transfer 절감 방안요즘 인터넷에 EKS에서 Data Transfer를 절감할 수 있는 다양한 방안들에 대해서 많이 소개.. [EKS] CA의 대체, Karpenter 사용 후기 요즘 EKS를 사용하고 있는 회사들이라면 Karpenter에 대해서 한번씩은 들어봤을 것이다. Karpenter는 EC2를 생성 및 오토스케일링 해주는 오픈소스 서비스로 Cluster Autoscaler에 대한 단점들을 보완해준다고 많이 설명되어 있다. Cluster Autoscaler에 비해 Karpenter가 가지는 장점 및 단점들은 다양한 매체나 블로그 글에 많이 소개가 되어 있기 때문에 Karpenter에 대한 소개는 아주 간단히 진행하고 현재 Karpenter를 어떻게 사용하고 있고 Karpenter를 사용할 때 주의 사항 및 간단한 팁들을 소개할 예정이다. # 1. Karpenter 구성 요소 Karpenter는 크게 다음의 요소로 구성되어 있다. - Karpenter(Pod) : 실질적으로 .. 이전 1 2 다음