| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Kubernetes
- 스프링빈
- 데이터엔지니어
- SRE
- AWS
- 개발자
- 운영체제
- OS
- k8s
- elasticsearch
- 커널
- etcd
- 개발
- Monitoring
- fork()
- Data Engineering
- 시스템호출
- Network
- Observability
- 인프라
- 코테
- Kafka
- 대규모시스템
- 엘라스틱서치
- it
- 분산시스템
- devsecops
- 쿠버네티스
- tech
- Pub/Sub
- Today
- Total
목록DevOps (21)
모래성 말고 철옹성
Amazon EKS를 사용하다 보면 재미있는 사실을 발견하게 된다. 클러스터를 생성할 때 우리는 VPC와 서브넷을 지정하고 생성하면 EC2 목록에 Data Plane 노드가 생기는 Master인 Control Plane 노드는 생기지 않는다.궁금하여 찾아보니 EKS에서 Control Plane 노드는 AWS가 관리하는 별도의 VPC에 존재하고 있기 떄문이다. 그렇다면 우리 VPC에 떠 있는 Data Plane노드들과 이들은 어떻게 통신하고, 문제가 생겼을 때 보이지도 않는 Control Plane을 어떻게 디버깅해야 할까?Cross-Account ENI(X-ENI) - Control Plane과 Data Plane의 통신EKS Control Plane과 사용자의 VPC 사이에는 Cross-Account ..
AWS Elastic Load Balancer(ELB) 란?ELB는 하나 이상의 AZ(가용 영역)에서 EC2 인스턴스, 컨테이너, IP 주소와 같은 여러 대상에 걸쳐 들어오는 애플리케이션 트래픽을 자동으로 분산해주는 "완전 관리형 로드 밸런싱 서비스"이다.ELB를 왜 사용할까?ELB를 사용하게 되면 단순히 트래픽을 전달하고 나누는 기능만이 아닌 아래와 같은 요소들을 만족시킬 수 있다.고가용성(HA): 특정 서버가 고장 나도 정상적인 다른 서버로 트래픽을 보내 가용성을 보장Health Check: 서버가 살아있는지 주기적으로 체크하여 상태 보장Auto Scaling: 트래픽이 급증하는 상황에서 서버 Scale in/out에 대응하여 트래픽에 유연하게 대처AWS ELB의 종류AWS ELB 종류에는 ALB, ..
최근 한국 뿐만 아니라 전세계적으로 보안 사건, 사고들이 많아지면서 서비스를 운영하는데 고민이 많아지는 것 같다. 산더미 처럼 쌓여가는 레거시 시스템들을 보안패치 하는 것은 기업들에게 큰 고민거리일 듯 하다. 이런 것들을 어떻게 자동화할 수 있을까? 하며 찾아보다 새로운 개념을 접하게 되어 정리해봤다.Policy-as-Code 란?Policy-as-code는 정책 관리 방식 중 하나로, 정책을 코드로 정의하고, 업데이트하며, 공유하고, 강제할 수 있게 하는 접근법이다. 수동 프로세스에 의존해 정책을 관리하는 대신 코드 기반 자동화를 활용함으로써, 팀은 더 빠르게 움직일 수 있고 사람의 실수로 인한 오류 가능성을 줄일 수 있다.또한 보안과 같은 영역에서 Policy-as-code 접근법을 사용하면 개발자와..
"우리 시스템이 얼마나 에러가 나도 되나? 의 지표 Error Budget"Error Budget 이란?Error Budget(오류 예산)은 Google에서 개발한 SRE 방법론의 핵심개념이다. 서비스의 안정성과 새로운 기능 개발 속도간의 균형을 정량적으로 관리하는 개념으로 보면 된다. IT업계에 있는 분들이라면 다 아시겠지만 100% 완벽한 소프트웨어는 불가능하다. 기술의 혁신을 가져가자니 시스템의 안정성이 떨어지고 안정성만 따지자니 기술 부채는 늘어간다. 이런 딜레마를 해결하는 방법 중에 하나가 Error Budget인 것 같다.Error Budget 계산Error Budget은 보통 아래 식과 같이 계산된다.Error budget = [100% - availability target] 조직에 서비..
들어가며회사에서 아주 오래된 On-premise서버의 OS가 EoS가 되며, 신규 서버로 Clean-install을 진행하며 tomcat을 처음부터 다시 설치해야하는 요건이 생겼다.이중화 구조여서 Clustering을 해야했고, 직면한 문제가 있어 트러블슈팅한 기록과 알게된 개념을 남긴다.문제 발생기존 Tomcat 을 기동하니 아래와 같은 오류가 발생했다.Unable to join multicast group, make sure your system has multicasting enabled.Unable to start cluster.알아보니 내가 맡게된 서버의 tomcat은 Multicast 방식으로 clustering 하고 있었다. 보통 내 구축 경험으로는 Unicast로 1:1 통신을 통한 clu..
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..