Recent posts
-
Kubernetes
[Kubernetes] 파드의 리소스 자원 사용량을 제한시켜보자
🔊 해당 포스팅은 시작하세요! 도커/쿠버네티스 서적을 읽고 개인적인 목적 하에 작성되는 글입니다. 포스팅에 사용되는 모든 자료는 제가 직접 재구성하였음을 알립니다. 쿠버네티스 클러스터를 멀티 노드 환경으로 구축하는 데 있어서 얻을 수 있는 또 다른 강점은 여러 대의 노드(서버)를 묶어서 리소스(CPU, 메모리) 풀로 사용할 수 있다는 점이다. 이러한 점을 활용한다면 특정 파드에서 더 많은 CPU 와 메모리를 필요로 한다면 리소스 풀을 사용해 동일한 리소스 스펙을 갖는 파드를 또 하나 추가시켜 수평 확장(Scale-Out)을 수행할 수도 있다. 하지만 이러한 Scale-Out 기능 만큼 또 다른 중요하게 신경써야 할 점이 있는데, 그것은 바로 컴퓨팅 자원 활용률(Utilization)이다. 이 '컴퓨팅..
-
자료구조
[C] C로 구현하는 선형적인 자료구조 : 싱글 연결 리스트 (1)
🔊 해당 포스팅은인프런의 널널한 개발자님의 독하게 C를 배운 사람을 위한 선형 자료구조 강의를 듣고 개인적인 복습 목적 하에 작성된 글입니다. 해당 포스팅에 사용된 모든 자료는 필자가 직접 재구성하였음을 알립니다. 이번 포스팅에서는 가장 기본적인 선형 자료구조 중 하나인 연결 리스트(Linked List) 자료구조를 C 언어로 구현해 보도록 하자. 이번 포스팅에서 구현할 것은 성능 개선과 같은 것들을 고려하지 않고 정말 구현에 초점을 맞추어 본다. 1. 연결 리스트 자료구조구현에 앞서서 연결 리스트가 어떤 자료구조인지 알아보아야 한다. 흔히 연결 리스트라는 자료구조를 구글링 해보면 아래와 같은 그림이 등장한다. 위 그림 속 하나의 data 와 next 가 같이 들어있는 것을 하나의 '노드(Node)'..
-
Kubernetes
[Kubernetes] 파드 내부의 데이터를 영속적으로 저장하자: PV, PVC
🔊 해당 포스팅은 시작하세요! 도커/쿠버네티스 서적을 읽고 개인적인 목적 하에 작성되는 글입니다. 포스팅에 사용되는 모든 자료는 제가 직접 재구성하였음을 알립니다. 1. 데이터를 보존해야만 하는 파드 : stateful 파드쿠버네티스와 관련된 직전 포스팅까지는 모두 파드가 상태가 없는 즉, stateless한 애플리케이션이었다. 상태가 없는 파드라는 것은 그 파드의 내부에는 별도의 데이터를 갖고 있지 않으며, 단순히 파드 외부에서 해당 파드로 요청을 보냈을 때, 어떤 처리만을 수행하고 응답을 반환하기만 했음을 의미한다. 하지만 경우에 따라 파드 내부에서 별도의 데이터를 가지고 있어야 할 수도 있다. 곧 파드가 상태가 있는 즉, stateful한 경우가 있을 수 있다. 이렇게 되면 stateful 한 파..
-
Kubernetes
[Kubernetes] 인바운드 트래픽을 처리하는 방법 : 인그레스(Ingress)
🔊 해당 포스팅은 시작하세요! 도커/쿠버네티스 서적을 읽고 개인적인 목적 하에 작성되는 글입니다. 포스팅에 사용되는 모든 자료는 제가 직접 재구성하였음을 알립니다. 이번 포스팅에서는 쿠버네티스 클러스터의 외부에서 내부로 요청(인바운드 트래픽)이 들어왔을 때, 어떻게 처리할지를 결정하는 인그레스(Ingress) 라는 리소스 오브젝트에 대해서 배워보도록 하자.1. 서비스 vs 인그레스먼저 인그레스라는 용어의 정의에 대해서 짚고 넘어가보자. 인그레스란, 외부에서 내부로 향하는 것을 일컫는다. 그래서 인그레스 트래픽이라 함은 외부에서 내부로 향하는 트래픽을 말하고, 인그레스 네트워크라고 한다면 외부에서 내부로 향하는 트래픽(인그레스 트래픽)을 처리하기 위한 네트워크를 의미한다. 인그레스라는 리소스 오브젝트를 ..
-
기초와 문법
[C] 함수 포인터와 역호출(Callback) 구조
🔊 해당 포스팅은 인프런의 널널한 개발자님의 독하게 시작하는 C 프로그래밍 강의를 듣고 개인적인 복습 목적 하에 작성된 글입니다. 해당 포스팅에 사용된 모든 자료는 필자가 직접 재구성하였음을 알립니다. 이번 포스팅에서는 함수의 고급이론 중 하나로 함수 포인터에 대한 개념에 대해 배워보고 이 함수 포인터를 자주 사용하는 유즈 케이스 중 하나로 역호출(Callback) 구조에 대해서도 배워보자.1. 함수 포인터이제 포인터라는 것에 대해서는 매우 익숙할 것이다. 그동안 정수, 실수, 문자, 문자열, 배열에 대한 포인터도 배웠지만 함수에 대한 포인터에 대해서도 배워볼 차례다. 함수도 문자열, 배열과 마찬가지로 정의한 함수 이름에 메모리 주소가 담긴다. 그래서 함수 포인터를 정의하면 함수의 이름을 메모리 주소로..