Kubelet, Kube-proxy, Pod
·
K8s
KubeletKubelet은 클러스터의 각 워커 노드에서 실행되는 에이전트로, 해당 노드의 모든 작업을 총괄하는 '현장 감독관' 또는 '선장' 과 같은 역할을 한다.주요 역할노드 등록: apiserver와 통신하여 자신(노드)을 클러스터에 등록한다.파드 실행 지시: apiserver로부터 특정 파드를 실행하라는 명령을 받으면, 노드의 컨테이너 런타임(예: Docker)에게 해당 이미지를 가져와 컨테이너를 실행하도록 지시한다.상태 모니터링 및 보고: 노드 위에서 실행되는 파드와 컨테이너들의 상태를 지속적으로 감시하고, 그 결과를 주기적으로 apiserver에 보고한다.설치 및 확인Kubelet은 다른 컨트롤 플레인 컴포넌트와 달리, kubeadm으로도 자동 설치되지 않는다. 모든 워커 노드에 반드시 수동으..
Kube-scheduler
·
K8s
Kube-scheduler란?kube-scheduler는 쿠버네티스 컨트롤 플레인에서 새로 생성된 파드(Pod)를 어떤 노드(Node)에서 실행할지 결정하는 핵심 컴포넌트다.중요한 점은, 스케줄러는 결정만 할 뿐, 실제로 노드에 파드를 띄우지는 않는다. 파드를 최종적으로 실행하는 것은 해당 노드에 있는 Kubelet의 역할이다. 스케줄러는 마치 물류센터의 배차 전문가처럼, 어떤 화물(파드)을 어떤 트럭(노드)에 실어야 가장 효율적일지 분석하고 할당하는 역할만 수행한다.스케줄러의 작동 방식: 2단계 프로세스스케줄러는 최적의 노드를 찾기 위해 모든 노드를 대상으로 다음과 같은 2단계 과정을 거친다.1단계: 필터링 (Filtering)가장 먼저, 파드를 실행할 수 없는 노드를 모두 걸러내는 과정이다. 마치 조..
시그널
·
CS:APP
시그널(Signal)이란?시그널(Signal)은 프로세스에게 특정 사건이 시스템 내에서 발생했음을 알리는 작은 메시지. 시그널은 운영체제(OS)가 프로세스의 흐름을 예외적으로 중단하고, 특정 처리를 수행하도록 요청하는 방식입니다.시그널의 필요성외부에서 프로세스 강제 종료 요청프로세스 간 통신 및 동기화비정상적 사건 알림 (메모리 접근 위반 등)시그널의 종류 및 대표적 예시리눅스는 약 30여가지의 시그널을 지원, 대표적인 예시:시그널기본 동작설명SIGINT (2)종료키보드 인터럽트 (Ctrl+C)SIGKILL (9)종료강제 종료 (무조건 종료)SIGSEGV (11)종료 및 코어덤프잘못된 메모리 접근SIGALRM (14)종료타이머 알람SIGTERM (15)종료소프트웨어 종료 요청SIGCHLD (17)무시자식..
예외상황
·
CS:APP
예외(Exception)란?예외는 프로그램이 정상적으로 진행되던 도중, 특정 상황이 발생했을 때 운영체제(OS)가 프로그램 흐름을 강제로 바꾸는 사건. 이를 예외적 제어 흐름(Exceptional Control Flow)필요성:외부 장치 입력 (키보드 입력, 마우스 클릭, 네트워크 데이터 수신 등)프로그램의 예기치 않은 오류 (0으로 나누기, 메모리 접근 오류 등)OS의 서비스 요청(시스템 콜)정상적 함수 호출(call) 방식으로 대응 불가능하기 때문에 운영체제의 특수한 처리(예외 처리, Exception Handling)가 필요예외 처리 구조 (Exception Handling)예외 처리는 다음과 같은 방식으로 진행예외 발생 시 CPU가 이를 감지하고 `예외 번호를 찾음` (그림 1)CPU가 미리 설정..
실행 가능 목적파일의 로딩
·
CS:APP
1. 실행 파일 로딩이란?정의: 디스크에 저장된 실행 파일을 메모리에 복사하고, 그 프로그램의 첫 명령어로 점프(jump)하여 실행하는 과정.시작 방식: 리눅스 쉘에서 ./prog처럼 실행하면 loader가 호출되어 시작됨.2. 누가 실행하는가?loader (로더): 운영체제 안에 항상 상주하는 커널 코드.프로그램을 실행할 때 execve() 시스템 호출을 통해 로더가 프로그램을 메모리에 올림.3. 로더의 역할ELF 실행 파일을 열고, 내부의 program header table을 분석..text, .data, .rodata, .bss 등 각 섹션을 지정된 런타임 주소에 복사..bss는 0으로 초기화.entry point(첫 명령어 위치)로 점프하여 실행 시작.런타임 메모리 구조 (Figure 7.15 ..
Kube Controller Manager
·
K8s
쿠버네티스의 자동화된 운영팀, Kube-controller-managerkube-controller-manager는 쿠버네티스 컨트롤 플레인에서 다양한 컨트롤러들을 실행하고 관리하는 핵심 컴포넌트다. apiserver가 클러스터의 모든 요청을 받는 관문이라면, controller-manager는 클러스터의 상태가 항상 올바르게 유지되도록 끊임없이 감시하고 조치하는 자동화된 두뇌 역할을 한다.컨트롤러(Controller)란 무엇인가?컨트롤러를 이해하기 위해 회사의 여러 부서를 상상해 보자. 인사팀은 항상 직원 수를 모니터링하다가 퇴사자가 생기면 새로운 직원을 채용한다. 시설팀은 회사 건물의 온도를 감시하다가 너무 더워지면 에어컨을 켠다.쿠버네티스의 컨트롤러도 이와 같다. 각 컨트롤러는 특정 분야를 책임지는..
그리디(Greedy) 알고리즘
·
Algorithm
그리디(Greedy) 알고리즘매 순간 가장 좋아보이는 선택을 하는 알고리즘.구성 방식Optimal Substructure (최적 부분 구조) 확인전체 문제의 최적해가 부분 문제의 최적해로부터 만들어질 수 있어야 함.예: 활동 선택 문제에서 S_ij 같은 식으로 서브문제 설정.Recursive 구조 파악문제를 재귀적으로 쪼갤 수 있어야 함.예: OPT(i, j) = max(OPT(i, k) + OPT(k, j)) 같은 형식.Greedy Choice 후, 하나의 하위 문제만 남음중요한 포인트. 동적 계획법은 보통 하위 문제가 여러 개지만,그리디는 하나만 남기게 설계되어야 효율적임.Greedy Choice의 안전성 증명“언제나 지금 고르는 게 전체적으로도 최선”이라는 걸 보여야 함.귀류법으로 자주 증명함 (예..
Kube-apiserver
·
K8s
Kube-apiserver란?마스터 노드의 컨트롤 플레인에 위치하여, 쿠버네티스 클러스터의 유일한 관문(Gateway) 역할을 하는 핵심 컴포넌트이다. etcd가 클러스터의 상태를 저장하는 두뇌라면, apiserver는 그 두뇌와 소통하기 위한 입과 귀 역할을 한다.기존 시스템과의 차이전통적인 시스템에서는 각 관리 도구나 사용자가 시스템의 여러 구성 요소에 직접 접근하는 경우가 많았다. 만약 회사의 여러 부서(스케줄러, 컨트롤러, 노드)가 있다고 가정해 보자.외부 방문객(kubectl 사용자)이나 내부 직원(클러스터 컴포넌트)이 각 부서의 책임자에게 직접 찾아가 업무를 요청하고, 파일 보관실(etcd)의 문서를 마음대로 수정한다면 어떻게 될까?요청자대상 부서작업 내용결과사용자 A파일 보관실(etcd)파드..
AVL Tree
·
자료 구조
1. 정의AVL Tree는 모든 노드에 대해 왼쪽과 오른쪽 서브트리의 높이 차이(균형 인수, BF)가 1 이하가 되도록 유지하는 이진 탐색 트리(Binary Search Tree, BST)이다.1962년, Adelson-Velsky와 Landis가 고안하였다.2. 기본 속성(1) BST 규칙모든 노드는 왼쪽 자식 (2) 높이 균형 조건모든 노드에 대해 |높이(왼쪽) - 높이(오른쪽)| ≤ 1이 조건을 유지하면 트리의 높이 = O(log n) 으로 유지되어, 검색·삽입·삭제가 효율적3. 균형 인수 (Balance Factor)정의각 노드에 대해 균형 인수 BF는 다음과 같이 계산된다:BF = height(left subtree) - height(right subtree)BF의 값이 –1, 0, +1이면 균..
ETCD
·
K8s
ETCD란?마스터노드의 control plane에 위치해있는 key-value쌍의 저장소이다.기존 DB와의 차이전통적인 DB는 테이블형식이다. 이러한 DB는 행과 열로 데이터를 저장하고,만약 아래와 같은 직원 테이블이 있다고 보자이름나이장소홍길동45서울김철수33서울김영희21인천각 행은 한 사람을 나타내고, 각 열은 저장되는 정보의 유형을 나타낸다.만일 연봉, 사원평가에 따른 등급와 같은 정보를 추가하고 싶을 때, 테이블과 그 안에 있는 모든 정보에 아래와 같이 영향을 미치게 된다.이름나이장소연봉등급홍길동45서울5000 김철수33서울4000 김영희21인천 A새로운 정보를 추가 할 때 마다 표 전체가 영향을 받아 빈 셀이 많아진다.ETCD와 같은 key-value 쌍 저장소는 아래와 같이 정보를 문서 또는 ..