일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- FastAPI
- Django
- asyncio
- ansible
- Kubernetes
- 자바스크립트
- 쿠버네티스
- POD
- AWS
- IAM
- Python
- docker
- ebs
- WSGI
- YAML
- leetcode
- kernel
- Deployment
- Service
- K8S
- EC2
- terraform
- IAC
- elasticsearch
- dockerfile
- intervals
- asgi
- event loop
- EKS
- github
- Today
- Total
목록Kubernetes (13)
궁금한게 많은 개발자 노트
비용을 줄이는 것에는 많은 방법이 있지만 서버의 비용을 최적화하는 것이 가장 대표적인 방법일 수 있습니다.쿠버네티스는 여러 서버에서 컨테이너를 실행, 관찰, 제어할 수 있는 도구로 CPU할당량에 대한 설정도 가능합니다. CPU Request를 통해 최소한으로 사용 가능한 자원을 설정할 수 있고, CPU Limits를 통해 최대 허용량을 설정할 수 있습니다. 최대 허용량보다 많이 사용하려 할 때 CPU Throttling이 발생하며 CPU를 할당받지 못해 대기하는 현상을 말합니다. 자원 최적화를 통해 비용을 줄일 수 있지만, 비용을 줄이면서도 서비스 안정성을 유지해야 하는 것이 가장 중요합니다. 이를 위해서는 꼭 필요한 만큼만 자원을 할당해야 하며 이는 비용과도 직결됩니다. 그리고 필요한 자원 사용량도 ..
안녕하세요. 오늘 포스팅에서는 Kubernetest에서 Node Auto Scaling방식에 대해 알아보고, 대표적인 방식인 Cluster AutoScaler(CAS)와 Karpenter에 대해 비교를 해보려 합니다 😎✔ 우선 , 비교적 오래전부터 사용되고 있었던 Cluster AutoScaler(이하 CAS)에 대해 알아보고, 동작 방식에 대해서도 정리해보겠습니다. 기본적으로 해당 포스팅에서 설명하는 Cloud Service Provisioner(CSP)는 AWS를 기준으로 작성됨을 참고 부탁드립니다!! AWS EKS(Elastic Kubernetes Service)의 경우에는 Kubernetes의 기본 CAS와 EC2 Auto Scaling Group(ASG)의 기능을 활용하여 Node Auto Sc..
쿠버네티스 Pod는 하나 이상의 컨테이너를 포함할 수 있습니다. Pod를 구성하는 Container가 실행되기 전에 사전 작업이 필요한 경우, 해당 Container들이 정상동작하기 위해 미리 필요한 작업을 수행하는 Container가 있는데 이를 Init Container라고 부릅니다. Init Container가 성공적으로 수행되어야 Pod를 구성하는 컨테이너들의 동작, 즉 Pod가 목적으로 하는 작업을 수행할 수 있습니다. 앱 컨테이너 실행 전에 미리 동작시킬 컨테이너 본 컨테이너가 실행되기 전에 사전 작업이 필요할 경우 사용 초기화 컨테이너가 모두 실행된 후에 앱 컨테이너를 실행 https://kubernetes.io/ko/docs/concepts/workloads/pods/init-contain..
쿠버네티스상에 서버나 앱서비스를 배포할 때, Persistent Volume을 마운트해야 하는 경우가 종종 있습니다. 이전에 쿠버네티스에서 Persistent Volume사용하기라는 글을 게시한 적이 있는데, 해당 게시글에서는 Persistent Volume으로 AWS EBS(Elastic Block Store)를 사용하였습니다. 이처럼 컨테이너화된 애플리케이션이 동작할 때 데이터 지속성을 위해 외부 Storage에 대한 액세스가 필요할 수 있습니다. 고가용성과 확장성을 보장하기 위해 EKS를 사용하고 S3를 외부 Storage로 사용한다면 다양한 환경에서도 원활하게 서비스를 제공할 수 있을 것입니다. 특히 MLOps환경에서 GenAI의 경우에는 매우 큰 LLM Model을 Container내부에 가져가..
쿠버네티스는 크게 Control Plane(Master node)과 Data plane에 속하는 Worker Node로 구성되어 있습니다. Pod가 생성되는 과정을 통해 전반적인 구조를 살펴보면, kubectl을 통해 Master Node에 존재하는 kube-api server에게 Pod생성 요청을 보내고, api-server는 해당 요청이 타당한지 검증하게 됩니다. 검증 후 etcd에게 node들에 대한 정보를 요청하게 되고, 전달 받은 정보를 바탕으로 scheduler에게 생성하려는 Pod가 어떤 Workder 노드에 할당되면 좋을 지에 대해 선택을 요청합니다. 그러고 난 후 적절한 Worker Node의 kubelet에 해당 Pod 생성 명령을 내리게 되고, kubelet은 해당 Worker Nod..