| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- OS
- Pub/Sub
- 대규모시스템
- Data Engineering
- k8s
- 인프라
- tech
- Kubernetes
- 코테
- Kafka
- 엘라스틱서치
- it
- AWS
- 커널
- 운영체제
- devsecops
- SRE
- 개발
- 스프링빈
- 데이터엔지니어
- Network
- fork()
- 개발자
- 분산시스템
- elasticsearch
- etcd
- 쿠버네티스
- Observability
- Monitoring
- 시스템호출
- Today
- Total
목록전체 글 (35)
모래성 말고 철옹성
Taints & Tolerations 이란?Taint와 Tolerations 는 Kubernetes의 Pod 스케줄링 제약 조건을 정의하는 기능이다.Taint: 노드에 "특정 Pod는 오지 마라"라는 표시Tolerations: Pod가 특정 Taint를 무시하고 해당 노드에 스케줄링 될 수 있도록 허용노드에 들어올 수 있는 Pod를 필터링 하는 기능이라고 생각하면 된다. *Taint & Toleration을 직역하면 오염 & 관용 이라는 뜻이다. 즉, 노드를 오염시켜 Pod를 받지 않고, Pod에 오염을 참을 수 있는 관용을 부여한다 라고 보면 된다.Kube-Scheduler의 주요 기능노드 전용화 (Node Isolation)특정 워크로드만 실행하도록 노드를 전용으로 할당리소스 보호 (Resource ..
Kube-Scheduler란?Kube-Controller-Manager는 Kubernetes 클러스터의 상태를 원하는 목표 상태(Desired State)로 유지하도록 관리하는 핵심 컴포넌트이다. 쉽게 말해, “쿠버네티스의 자동화 관리자(Controller 집합체)”라고 할 수 있다. Kube-Scheduler의 주요 역할과 기능ReplicaSet Controller지정된 수의 Pod가 항상 실행되도록 보장Node Controller노드의 상태(정상/비정상) 모니터링 및 조치Endpoint ControllerService와 Pod를 연결 (네트워크 엔드포인트 관리)Service Account & Token ControllerPod가 API Server와 안전하게 통신 가능하도록 인증자격 발급이런 다양한 ..
Kube-Scheduler란?Kube-Scheduler는 Kubernetes에서 Pod가 어떤 노드(Node)에 배치될지 결정하는 스케줄러 컴포넌트이다.kubectl 명령을 실행하거나, 외부 어플리케이션이 API 요청을 보낼 때, 그 요청들은 가장 먼저 Kube-API Server를 통과하게 된다. Pod는 스스로 실행 위치를 알 수 없기 때문에, 클러스터 내 리소스 상태를 확인하고 가장 적절한 노드에 할당하는 역할을 한다. Kube-Scheduler의 주요 기능스케줄링 후보 탐색실행 가능한 노드 필터링자원 조건 확인CPU, Memory 등 하드웨어 리소스 자원 고려정책 기반 선택NodeSelector, Node Affinity, Taints & Tolerantions 지원우선순위 부여적합한 노드 점수화..
Kube-API Server란?Kube-API Server는 Kubernetes 클러스터의 Gateway로서, 모든 명령과 요청이 반드시 지나가는 핵심 컴포넌트이다.kubectl 명령을 실행하거나, 외부 어플리케이션이 API 요청을 보낼 때, 그 요청들은 가장 먼저 Kube-API Server를 통과하게 된다.Kube-API Server의 주요 핵심기능REST API 제공Kubernetes와 통신할 수 있는 표준 HTTP API 제공인증/인가 처리사용자나 서비스 계정의 권한 검증etcd 연동클러스터 상태 정보 저장, 조회요청 검증과 변환잘못된 요청 거부, 필요한 데이터 구조 변환다른 컴포넌트들과 중재Controller, Scheduler등과 상태 동기화Kubernetes에서의 위치사용자 ↔ Kube-AP..
etcd란? 분산 환경에서 데이터를 안정적으로 저장하는 강한 일관성(Strong Consistency) 기반의 키-값 저장소이다.주요 특징으로는리더 선출 자동 처리 - 네트워크 분할 상황에서도 안정적으로 리더 선출고가용성 - 리더 노드 장 시 데이터와 서비스 지속 가능분산 시스템 필수 구성요소 - k8s같은 클러스터 환경에서 핵심 메타데이터 저장소로 사용etcd 주요 기능간단한 인터페이스curl 같은 HTTP 도구로 값 읽기/쓰기 가능key-value 저장표준 파일 시스템처럼 계층적 디렉토리 구조 지원변경 감지특정 키, 디렉터리 변경 시 감지하고 반응보안 기능선택적 SSL 클라이언트 인증서 지원고성능인스턴스당 초당 수천 건의 쓰기 처리 가능TTL 지원특정 키에 만료 시간 부여 가능분산 합의Raft 프로토..
"측정할 수 없으면, 개선할 수도 없다”서비르를 운영하다 보면 사용자, 운영자, 개발자 마다 "서비스가 잘 되고 있구나"의 기준은 제각각이다. 운영자는 "로그가 안보여요", 고객은 "너무 느려요" 이렇게 서로 다른 잣대를 쓰면, 문제를 발견하는 시점도 다르고 우선순위도 충돌하게 된다. 그렇기 때문에 감 대신에 측정 가능한 정량적인 기준이 필요했고, 그게 바로 SLI, SLO, SLA 체계이다. 서비스 수준 척도 (Service Level Indicator, SLI)서비스 수준을 판단할 수 있는 몇 가지를 정량적으로 측정한 값ex. 응답속도, 시스템 처리량, 에러율 등SRE의 관점에서 가장 중요한 지표는 가용성업계에서 통상 고가용성(High Availability)를 99% 또는 99.9% 와 같이 표현한..
Firecracker가 탄생한 히스토리AWS는 처음에 Lambda 서비스를 만들면서 고객별로 전용 서버를 할당해 안전하게 운영했습니다. 하지만 이 방식은 무겁고 관리가 어려운 문제점이 있었습니다. 서버리스와 컨테이너 사용이 급격히 늘어나면서, 더 빠르고 가볍고 효율적인 가상 머신 기술이 필요해졌습니다.그래서 AWS는 Firecracker를 개발했습니다. Firecracker는 아주 작고 빠른 가상 머신으로, 한 서버에 수천 개를 동시에 띄워도 안전하고 효율적으로 운영할 수 있도록 설계되었습니다. 덕분에 Lambda와 Fargate 같은 서비스가 더 빠르고 효율적으로 동작할 수 있게 되었습니다.개요Firecracker는 MicroVM을 빠르고 안전하게 만드는 기술Firecracker의 중요한 구성요소는 가..
Java Agent애플리케이션의 성능을 자동으로 측정예외와 오류 추적대표적인 프레임워크 기본적으로 지원간단한 API를 제공하여 어떤 애플리케이션이든 계측 가능Java Agent의 작동 방식지원되는 기술을 자동으로 계측하여 이벤트를 기록에이전트는 바이트코드 계측을 수행이벤트 전후에 코드를 안전하게 삽입하여 실행 시간, 메타데이터, HTTP 정보를 측정코드를 다시 컴파일 수행할 필요 없음이벤트는 트랜잭션과 스팬 형태로 Elastic APM에 전송Node.js Agent성능 메트릭과 오류를 자동으로 수집대표적인 프레임워크와 라우터를 기본적으로 지원간단한 API를 제공하여 어떤 애플리케이션이든 계측 가능Node.js Agent의 작동 방식지원되는 기술을 자동으로 계측하여 이벤트를 기록모듈이 로드될 때 패치비동기..