들어가기 전 이 글은 쿠버네티스 인 액션 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 쿠버네티스 구성 요소의 분산 특성 앞에서 이야기 했던 모든 구성요소는 개별적인 프로세스로 동작한다. 그리고 각 구성요소들의 의존성은 다음과 같이 구성된다. 그림에서 볼 수 있듯이, 쿠..
Kubernetes의 Kube-Proxy Kube-Proxy는 쿠버네티스의 컴포넌트 중 하나다. Kube-Proxy는 쿠버네티스 클러스터 내부에서 Service와 관련된 모든 것을 처리하는 동작을 한다. Service의 IP로 전달되는 패킷들이 Pod로 전달되는 것은 바로 Kube-Proxy Pod가 해주는 일이다. Kube-Proxy의 동작 방식은 두 가지가 존재한다 userspace 프록시 모드(이전) : Kube Proxy가 패킷을 받아서 Pod로 전달해줌. iptables 프록시 모드(현재) : Kube Proxy는 IpTables만 업데이트 해줌. 아래에서 대략적인 동작을 살펴볼 수 있다. kube-proxy의 Userspace Mode는 Iptables를 이용해 모든 패킷이 kube-proxy..
들어가기 전 이 글은 쿠버네티스 인 액션 10장을 공부하며 작성한 글입니다. 10.1 Stateful 파드 복제하기 ReplicaSet은 하나의 Pod Template을 이용해 여러 개의 파드를 생성한다. 이 때 ReplicaSet이 PVC를 사용하도록 작성하면 각 파드는 어떤 차이가 있을까? 생성된 파드는 IP가 다른 것을 제외하고는 모두 동일한 상태를 가진다. 각 파드가 아래처럼 각각의 PVC를 참조하는 상황을 고려해보자. 이것은 각 파드가 독립적인 '상태'를 가지고 있음을 의미한다. 이렇게 구성하려면 어떻게 해야할까? 우선 우리가 알고 있는 ReplicaSet으로는 구현할 수 없다. 10.1.1 개별 스토리지를 갖는 ReplicaSet 여러 개 실행하기 아래그림처럼 각 파드가 독립적인 PVC를 참조..
들어가기 전 이 글은 쿠버네티스 인 액션 9장을 공부하며 작성한 글입니다. 9. Deployment : 선언적 어플리케이션 업데이트 쿠버네티스의 Deployment 리소스는 배포와 어플리케이션의 업데이트를 좀 더 쉽게 할 목적으로 만들어진 녀석이다. 이번 장에서는 Deployment를 사용하지 않을 때 / 사용했을 때의 어플리케이션 업데이트에 대해서 공부할 것이다. 파드를 최신 버전으로 교체 관리되는 파드 업데이트 Deployment 리소스로 파드의 선언적 업데이트 롤링 업데이트 수행 잘못된 버전의 롤아웃 자동 차단 롤아웃 속도 제어 이전 버전으로 파드 되돌리기 9.1 파드에서 실행 중인 어플리케이션 업데이트 일반적으로 클라이언트는 k8s의 Pod에 접근할 때, 서비스를 통해서 접근하게 된다. 그리고 P..