Recent posts
-
Kubernetes
[Kubernetes] 파드의 생애주기(Lifecycle)와 배포 전략
🔊 해당 포스팅은 시작하세요! 도커/쿠버네티스 서적을 읽고 개인적인 목적 하에 작성되는 글입니다. 포스팅에 사용되는 모든 자료는 제가 직접 재구성하였음을 알립니다. 쿠버네티스에서는 파드를 관리할 때, 파드의 상태값에 따라 관리하게 된다. 그리고 이 파드의 상태는 파드의 생애주기(Lifecycle)라는 것 안에 다양한 상태 종류로 존재한다. 이번 포스팅에서는 파드의 생애주기를 알아보면서 파드의 상태에 어떤 종류들이 있고, 그 의미가 무엇인지, 더 나아가 이 생애주기를 발생시키는 배포 전략(a.k.a 블루 그린, 롤링 업데이트)에 대해서 알아보도록 하자. 지금까지는 파드, 디플로이먼트, 레플리카셋 등 모든 쿠버네티스 리소스 오브젝트를 단순히 kubectl apply -f 라는 명령어를 이용해서 배포해왔다. ..
-
Kubernetes
[Kubernetes] 쿠버네티스의 파드 스케쥴링
🔊 해당 포스팅은 시작하세요! 도커/쿠버네티스 서적을 읽고 개인적인 목적 하에 작성되는 글입니다. 포스팅에 사용되는 모든 자료는 제가 직접 재구성하였음을 알립니다. 저번 포스팅에서는 쿠버네티스에서 파드나 컨테이너와 같은 리소스 자체를 얼마나 알차게 활용할 수 있는지에 대해서 배웠다. 이번 포스팅에서는 파드나 컨테이너와 같은 인스턴스를 생성할 때, 그 인스턴스를 어떤 서버 즉, 쿠버네티스 클러스터의 어떤 노드에 생성할 것인지를 결정하는 쿠버네티스의 스케쥴링에 대해서 배워보려고 한다. 간단한 예시로, 어떤 애플리케이션을 쿠버네티스 클러스터에 배포하려고 하는데, 해당 애플리케이션의 기반이 되는 (도커)이미지가 amd64 OS 플랫폼만 지원이 된다면 해당 애플리케이션은 amd64 OS 플랫폼으로 구성되어 있는..
-
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 한 파..