일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Data Engineering
- Kubernetes
- k8s
- fork()
- tech
- zookeeper
- POJO
- 시스템호출
- 개발자
- Kafka
- 인프라
- 도커
- docker
- 쿠버네티스
- it
- 컴퓨터 구조
- OS
- CNS
- 의존성주입
- 스프링빈
- 개발
- Pub/Sub
- 제어의역전
- 취뽀
- 운영체제
- spring boot
- 커널
- 데이터엔지니어
- Context Switching
- 코테
- Today
- Total
목록전체 글 (14)
모래성 말고 철옹성

쿠버네티스 아키텍처 톺아보기쿠버네티스(Kubernetes)는 컨테이너 오케스트레이션을 위한 플랫폼이다. 컨트롤 플레인(Control Plane), 워커 노드(Worker Node), 애드온(Add-ons) 이렇게 세 가지 부분으로 나누어 알아보자. 🏗 컨트롤 플레인 (Control Plane)쿠버네티스 클러스터의 두뇌 역할. API 서버: 쿠버네티스의 모든 요청을 처리하는 중심 허브컨트롤러 매니저: 클러스터 상태를 원하는 상태로 유지스케줄러: 워커 노드에 적절한 파드를 배치etcd: 클러스터의 상태 정보를 저장하는 키-값 저장소🏭 워커 노드 (Worker Node)컨테이너가 실제로 실행되는 곳 Kubelet: 컨트롤 플레인의 명령을 받아 컨테이너를 관리Kube Proxy: 네트워크 통신을 담당컨테이너..

Service의 역할쿠버네티스에서 Service는 파드(Pod)들이 안정적으로 네트워크를 통해 통신할 수 있도록 도와주는 리소스다. 각 파드는 고유한 IP를 가지지만, 동적으로 변경될 수 있기 때문에 직접 접근하는 것이 어렵다. 이를 해결하기 위해 Service가 존재하며, 특정 네트워크 정책을 설정하여 안정적인 접근을 가능하게 한다.네트워크 추상화: 파드가 변경되더라도 동일한 네트워크 주소를 통해 접근할 수 있도록 한다.로드 밸런싱: 여러 개의 파드로 트래픽을 분산시켜 부하를 조절한다.디스커버리: DNS와 연동하여 내부 또는 외부 서비스 탐색이 용이하도록 지원한다.쿠버네티스에서 Service를 생성할 때, spec.type 필드를 통해 동작 방식을 정의할 수 있다. 주요한 세 가지 유형은 다음과 같다...

1분 쿠버네티스QoS (Quality of Service)쿠버네티스에서 QoS는 파드(Pod)의 리소스 우선순위를 결정하는 역할을 한다. 노드에 리소스가 부족할 때 우선순위가 낮은 파드가 먼저 종료되므로, 서비스 안정성을 위해 QoS 설정이 중요하다.QoS 클래스BestEffort: 리소스 request/limit 없음 → 가장 먼저 종료됨Burstable: request보다 더 많이 사용할 수 있음 → 중간 우선순위Guaranteed: request=limit → 가장 높은 우선순위샘플apiVersion: v1kind: Podmetadata: name: qos-examplespec: containers: - name: guaranteed-container image: nginx reso..

1분 쿠버네티스Pod의 ReadinessProbe와 LivenessProbeReadinessProbe컨테이너가 트래픽을 받을 준비가 되었는지를 결정새로 Pod가 구동일 될 때 컨테이너 내부의 App(ex. tomcat)이 준비(Ready)되었는지 확인LivenessProbe컨테이너를 언제 재시작해야 하는지 결정Pod는 Running 상태이더라도 App(ex. tomcat)이 장애 상황이 있을 수 있는데, 이 상황에 App을 지속적으로 확인하여 Pod를 재기동공통설정 내용은 HttpGet, exec, TÇPSocket으로 공통된 속성으로 해당 App에 대한 상태체크readiness sample code (tcpSocket)apiVersion: v1kind: Podmetadata: name: goproxy..
POJO (Plane Old Java Object) 아무 제약조건이 없는 오래된 순수 자바 객체 class POJO { private String pojo; public void pojo(){ System.out.println("pojo"); } } 자바빈 EJB 사용 시절 자주 활용되던 클래스 정의 방식으로, 객체 사용 편의성을 높이기 위해 만들어짐 다음 세 가지 규약을 따르는 객체를 자바빈이라 칭함 No-Arg 생성자 존재 Getter, Setter 존재 java.io.Serializable 상속 // Java Bean 제약 // 1. no-arg 생성자 // 2. getter setter 존재 // 3. Serializable 상속 class JavaBean implements Serializabl..

개요 스프링의 핵심적인 세 가지 개념인 IoC, DI, Spring Container를 알아보기 전에 어떤 페인포인트가 있었길래 이 세 가지 개념들이 스프링에 등장하게 되었는지 간단한 로직을 순수한 Java코드에서 스프링 코드로 발전시켜 나가면서 하나씩 알아보겠다. 코드레벨로 진입하기 전 한 가지 상황을 가정해서 코드로 발전시켜 나가보겠다. 1) 비즈니스 요구사항 사내 동아리 활동을 활성화 시키기 위해 동아리 웹사이트를 제작하려고 한다. 사용자는 웹사이트에서 사용자 등록을 하고 동아리인 그룹에 참여할 수 있다. 2) 클래스 도출 User Class : 사용자의 속성정보를 나타내는 모델 클래스. UserService Class : 사용자와 관련된 비즈니스 로직을 처리하는 클래스. ex) 사용자 등록/제거 ..

프로세스의 개요*** 프로세스란? 프로세스란 메모리상에서 작업하고 있는 프로그램을 말한다. *프로그램 vs 프로세스 - 프로그램 : 저장장치에 존재하는 실행파일 - 프로세스 : 해당 실행파일(프로그램)이 실행 되어 메모리상에서 작업되고 있는 단위 프로세스의 상태 현대 운영체제는 대부분 시분할 시스템이기 때문에 프로세스 상태를 두어 프로세를 관리한다. 프로세스는 다음과 같은 다섯 가지의 상태를 가진다. 상태 설명 New 프로그램을 메모리에 할당하고 PCB가 생성되는 생성 상태이다. Ready 프로세스가 생성된 후 시작하기를 기다리고 있는 준비 상태이다. Runing 프로세스가 time slice를 얻어 CPU에 할당되어 CPU자원을 사용하고 있는 실행 상태이다. Waiting (Block) 실행 상태에 있..

컴퓨터 구조의 한계 혹은 자원의 한정적인 이유로 CPU의 성능을 최고로 내지 못할 수 있다. 이를 해소하기 위한 다양한 방법을 알아보자 컴퓨터 성능 향상기술 버퍼(Buffer)란? 일정량의 데이터를 모았다가 한 번에 옮기는 방법으로 속도 차이가 존재하는 두 장치간 차이를 완화시키는 역할을 한다. 버퍼와 비슷한 용어로 스풀(SPOOL)이 있는데, CPU와 입출력장치의 속도 차이를 완화시키기 위한 소프트웨어적인 버퍼이다. 캐시(Cache)란? 캐시란 CPU와 메모리사이의 속도 차를 완화하기 위해 메모리에서 데이터를 미리 가져와 임시로 저장해두는 CPU 내부 공간을 말한다. (캐시는 CPU 내부 버스를 사용하기 때문에 더 빠르다.) CPU는 필요한 데이터를 메모리로 가기 전 캐시에서 먼저 찾는데 원하는 데이터..