들어가기 전 이 글은 쿠버네티스 인 액션 16장을 공부하며 작성한 글입니다. 16.1 Taint와 Toleration을 사용해 특정 노드에서 파드 실행 제한 Taint는 오염을 의미하고, Toleration은 용인이라는 의미다. 노드에 Taint(오염)를 이용해 특정 표시를 해두었을 때, Pod가 이것은 Tolerate(용인)하는 경우라면 그 파드는 노드에 스케쥴링이 가능하다는 의미다. Taint와 Toleration은 각각 이런 역할을 하는 녀석들이다. Taint + Toleration은 파드를 특정 노드에 스케쥴링 하도록 하기 보다는 특정 노드에 파드가 배포되지 않도록 동작한다. Taint : 노드에 추가할 수 있는 스케쥴링 관련 정보다. 노드에 추가된 모든 Taint를 만족하는 Pod만 스케쥴링 될..
들어가기 전 이 글은 쿠버네티스 인 액션 6장을 공부하며 작성한 글입니다. 6. 볼륨 : 컨테이너에 디스크 스토리지 연결 파드는 내부적으로 CPU / 메모리 / 네트워크 인터페이스를 따로 배정 받아서 동작한다. 그렇지만 파드가 사용하는 파일 시스템은 컨테이너 이미지로부터 만들어진다. 따라서 기본적으로 파드에 저장한 데이터들은 파드가 재시작하면 사라진다. 파드에 저장한 데이터들을 보존하려면 '볼륨'을 사용해야한다. 볼륨은 파드와 동일한 라이프 사이클을 가진다. 이 장에서는 볼륨을 공부해보고자 한다. 6.1 볼륨 소개 볼륨은 독립적인 쿠버네티스 오브젝트가 아니므로 자체적으로 생성 / 삭제될 수 없다. 볼륨은 파드의 모든 컨테이너에서 사용 가능하지만, 접근하려는 컨테이너에서 각각 마운트 돼야한다. 6.1.2 ..
들어가기 전 이 글은 쿠버네티스 인 액션 책을 읽고 공부하며 작성한 글입니다. 4. 레플리케이션과 그 밖의 컨트롤러 : 관리되는 파드 배포 쿠버네티스는 특정 파드들이 실패 상태에 다다르면 자동으로 복구하는 기능을 제공한다. 이런 기능은 다음 두 가지로 나누어져서 제공되는 것 같다. 마스터 노드(Control Plane)의 컨트롤러들 : Replicaset, DaemonSet 워커 노드의 Kubelet 이 장에서는 어떤 메커니즘으로 실패 상태의 녀석들이 정상 상태로 회복되는지를 공부하고자 한다. 4.1 파드를 안정적으로 유지하기 → Kubelet이 함. 워커 노드에 파드가 배포된다. 파드 안에는 하나 이상의 컨테이너가 존재할 수 있다. 만약 파드 안의 컨테이너 중 하나라도 상태가 좋지 않다면 워커 노드의 ..
들어가기 전 이 글은 쿠버네티스 인 액션 14장을 공부하며 작성한 글입니다. 14.1 파드 컨테이너의 리소스 요청 파드를 생성할 때, 파드가 사용할 수 있는 자원 (CPU / 메모리)를 제한할 수 있다. 다음 두 가지 설정값을 통해 이것을 제공한다. request(요청) : 최소로 사용할 수 있는 자원 limit(제한) : 최대로 사용할 수 있는 자원 14.1.1 리소스 요청(Request)을 갖는 파드 생성하기 CPU Request를 지정하지 않으면, 컨테이너에서 실행중인 프로세스에 할당되는 CPU 시간을 신경쓰지 않는다는 말이다. 최악의 경우 프로세스는 CPU 시간을 전혀 할당받지 못할 수도 있다. 아래를 살펴보자. // 자원 request(요청)를 가진 Pod 생성 요청 apiVersion: v1 ..
들어가기 전 이 글은 쿠버네티스 인 액션 11장을 공부하며 작성한 글입니다. 11.1 아키텍쳐 이해 쿠버네티스는 전체적으로 다음 요소들로 구성되어있다. 유기적으로 아래 요소들이 협력하면서 쿠버네티스가 잘 운영될 수 있도록 해준다. 컨트롤 플레인 etcd : 분산 저장 스토리지 API 서버 스케쥴러 컨트롤러 매니저 워커 노드 kubelet kube-proxy 컨테이너 런타임 애드온 쿠버네티스 DNS 서버 대시보드 Ingress Controller 힙스터 CNI (Container Network Interface) 11.1.1 쿠버네티스 구성 요소의 분산 특성 앞에서 이야기 했던 모든 구성요소는 개별적인 프로세스로 동작한다. 그리고 각 구성요소들의 의존성은 다음과 같이 구성된다. 그림에서 볼 수 있듯이, 쿠..