Kubernetes (32) - HPA로 Pod 개수 자동 확장하기
웹 요청이 늘어날 때 Pod를 사람이 직접 늘리고, 한가해지면 다시 줄이는 일은 반복적이고 늦기 쉽다. Horizontal Pod Autoscaler(HPA)는 관측한 지표를 바탕으로 Deployment 같은 워크로드의 복제본 수를 자동으로 조절한다. HPA는 컨테이너…
웹 요청이 늘어날 때 Pod를 사람이 직접 늘리고, 한가해지면 다시 줄이는 일은 반복적이고 늦기 쉽다. Horizontal Pod Autoscaler(HPA)는 관측한 지표를 바탕으로 Deployment 같은 워크로드의 복제본 수를 자동으로 조절한다. HPA는 컨테이너…
앞 글에서 컨테이너마다 requests 와 limits 를 직접 설정했다. 하지만 팀원이 많아지면 누군가 설정을 빠뜨리거나, 지나치게 큰 값을 넣는 일을 매번 리뷰만으로 막기 어렵다. LimitRange 와 ResourceQuota 는 네임스페이스 단위로 기본값과 총량…
컨테이너는 파일을 쓸 수 있다. 로그 파일, 압축 해제 파일, 임시 캐시처럼 컨테이너가 사용하는 로컬 디스크도 결국 Kubernetes 노드의 디스크 공간을 차지한다. 이런 임시 디스크 사용량을 관리하는 리소스가 ephemeral storage 다. 데이터를 오래 보존…
Deployment 같은 컨트롤러가 Pod를 생성해도 어느 Node에서 실행할지는 아직 정해지지 않았다. 기본 스케줄러인 kube scheduler 는 Node가 지정되지 않은 Pod를 발견하고, 조건을 만족하는 Node 중 적합한 곳을 선택해 연결한다. 앞에서 배운…
1. Ingress가 필요한 이유 LoadBalancer Service를 애플리케이션마다 만들면 외부 IP와 로드 밸런서가 서비스 수만큼 늘어날 수 있다. 웹 애플리케이션은 보통 하나의 도메인 아래에서 호스트 이름이나 URL 경로에 따라 여러 백엔드로 나누어 보내는 편…
1. MetalLB가 필요한 이유 type: LoadBalancer Service는 외부 로드 밸런서 구현체에 공인 또는 외부 IP 할당을 요청한다고 정리했다. AWS·GCP 같은 클라우드에서는 해당 구현체가 제공되지만, kubeadm으로 구성한 온프레미스·가상 머신…
1. selector 없이도 Service를 만들 수 있다 일반적인 Service는 selector로 Pod를 찾고, Kubernetes가 EndpointSlice를 자동 생성한다. 그러나 관리형 데이터베이스, 다른 클러스터의 서비스, Kubernetes로 이전 중인…
1. Service의 분산 경로도 제어할 수 있다 일반 Service는 준비된 모든 엔드포인트 가운데 하나로 트래픽을 보낸다. 이 기본 동작은 무상태 웹 서버에 알맞지만, 클라이언트를 같은 Pod에 유지해야 하거나 외부 요청의 원본 IP를 보존해야 할 때는 추가 정책이…
앞 글에서 Windows 노트북의 VirtualBox에 있는 복제 VM의 MAC 주소·고정 IP를 정리하고, Windows 호스트의 127.0.0.1 포트를 VM의 SSH 포트로 전달했다. 이 포트 포워딩은 Windows 노트북에서 VM을 처음 설정하거나 문제가 생겼을…
VirtualBox에서 Ubuntu VM을 복제하면 디스크뿐 아니라 운영체제의 네트워크 설정도 함께 복사된다. 복제 과정에서 가상 NIC의 MAC 주소를 새로 만들었다면, 기존 Netplan 설정이 원본 MAC을 기준으로 인터페이스를 찾지 않도록 함께 점검해야 한다.…