목록인프라/Kubernetes (4)
훈훈훈
해당 내용 및 그림은 공식문서, 블로그 등을 참고하였습니다. 출처는 글 하단에 작성하였습니다. 서비스(Service) 란? - 파드에서 실행되고 있는 애플리케이션을 외부로 노출 시키는 추상적인 방법 - 디플로이먼트로 관리되고 있는 여러 파드들은 재시작 할 때마다 부여받은 IP 주소가 변경되기 때문에 관리가 어렵다. - 위의 문제점은 서비스를 이용하여 해결할 수 있다. - 서비스는 지정된 IP로 생성 및 여러 파드들을 묶어서 관리 할 수 있으며, DNS로 조회가 가능하다. - 서비스도 파드와 마찬가지로 REST Object 이며, 서비스 생성 시 API Server에 POST하여 새 인스턴스를 생성할 수 있다. - 기본 프로토콜은 TCP, 다른 프로토콜은 해당 링크 참고 - 예시 1 2 3 4 5 6 7 ..
해당 내용은 공식문서와 쿠버네티스 인 액션을 참고하였습니다. LivenessProbe - Kubernets에서 제공하는 컨테이너 헬스체크 방식 중 한가지 - LivenessProbe를 사용하면 컨터이너가 서비스를 시작할 수 있는지 판별할 수 있다. - 즉, 외부로부터 Request를 요청받을 수 있는 상태인지 판별 - 같이 쓰이는 헬스체크 방식 중 ReadinessProbe도 있다. 해당 속성을 사용하면 서비스가 계속 유지되고 있는지 체크할 수 있다. 예제로 사용한 Deployment 매니페스트 파일은 아래와 같다. apiVersion: apps/v1 kind: Deployment metadata: name: test-depolyment labels: app: test-api spec: replicas:..
해당 내용은 공식문서, 쿠버네티스 인 액션 책을 참고 하였습니다. HPA(Horizontal Pod Autoscaler) - 파드를 수평적으로 오토스케일링함, Scale Out(파드 수 증가) - 컨트롤러가 주기적으로 Metric을 수집 후, 조건에 부합하면 HPA 리소스에 설정되어 있는 레플리카 수 계산 Metric 수집 과정 - kubelet 자체에 내장된 cAdvisor 에이전트에서 실행되는 개별 컨테이너 및 노드 전체 리소스 사용 데이터 수집 - cAdvisor 에이전트로 부터 수집된 데이터를 바탕으로 전체 클러스터에 대한 리소스 연산은 Metirc Server 혹은 힙스터에서 진행 - HPA는 Metric Server 혹은 힙스터의 API 호출을 통해 메트릭 수집 * 최근에는 힙스터 보다는 Me..
이번에는 쿠버네티스를 사용해서 웹 서버를 구축하려고 한다. 사실 AWS와 같은 클라우드 벤더사를 사용할 경우 로컬 내에서 웹 서버랑 데이터 베이스 서버를 동시에 실행 시킬 일은 없지만, 쿠버네티스에 대한 개념도 잡을 겸 해보았다. 예제로 사용한 웹 서버는 이전 글에서 Spring boot와 코틀린으로 작성한 코드를 사용하였다. 사용한 기술은 아래와 같다. - Spring boot - Postgresql - Docker - Kubernetes - Helm 구성도는 아래와 같다. 웹 서버(Spring boot)와 DB서버(Postgresql) 컨테이너를 각각 파드로 나누었다. 그 다음 서비스도 서로 다른 포트로 통신하기 때문에 서로 다른 서비스로 나누었다. Service까지 설정이 되면 이제 파드에 접근할 ..