본문 바로가기

서비스5

Kubernetes - readness probe, headless service - 출처: Kubernetes in action - 레디니스 프로브 서비스의 레이블 셀렉터와 파드의 레이블이 일치하면 해당 파드는 서비스 관리대상(엔드포인트 리소스에서 IP 목록으로 유지함)이 된다. 요청이 서비스로 전송된 후에 서비스는 임의의 파드로 해당 요청을 전송하는데 만약 파드가 요청을 처리할 준비가 되지 않은 상황이라면 어떻게 해야 할까? 앞서 이와 비슷한 라이브니스 프로브를 알아본적이 있다. 라이브니스 프로브는 불안전한 컨테이너를 다시 시작해서 앱의 상태를 원활하게 유지한다. 레디니스 프로브도 주기적으로 호출되며 특정 파드가 클라이언트 요청을 수신할 수 있는지 여부를 판단한다. 이때 준비가됐다는 기준은 앱의 특성에 맞도록 개발자가 잘 정의해야 한다. 레디니스 프로브에도 3 가지 유형이 존재한다.. 2022. 10. 30.
Kubernetes - External service, Service export - 출처: Kubernetes in action - 클러스터 외부에 있는 서비스 연결 지금까지는 모두 클러스터 내부의 파드에 대해서만 통신을 지원하는 서비스를 설명했다. 하지만 쿠버네티스는 외부 서비스를 노출해서 외부 IP과 포트로 연결을 전달할 수 있다. 즉 클러스터 내부 클라이언트 파드에서 외부 서비스로 연결이 가능하다. - 서비스 엔드포인트 서비스와 파드 연결 과정에는 숨은 리소스가 있다. 서비스는 파드에 직접 연결되는것이 아니라 서비스 - 엔드포인트 리소스 - 파드로 연결된다. "kubectl describe svc"명령어로 서비스 정보를 확인해보자. 항목을 보다보면 엔드포인트(Endpoints)란 속성을 확인할 수 있을것이다. 엔드포인트 리소스는 서비스로 노출되는 파드의 IP와 포트 목록이다. .. 2022. 10. 24.
Kubernetes - Service intro - 출처: Kubernetes in action - 서비스 시스템을 마이크로 서비스로 구성하기로 했다면 파드가 통신하는 유형은 대게 아래 2가지 경우에 해당할것이다. 클러스터 내부의 다른 파드에서 오는 HTTP 요청에 응답 클러스터 외부 클라이언트에서 오는 HTTP 요청에 응답 만약 쿠버네티스를 사용하지 않는 상황에서 다른 서비스를 이용할때 보통은 환경설정 파일에 IP나 Host 이름을 설정하는 방식으로 사용한다. 하지만 쿠버네티스는 이런 방식으로 사용할 수 없는데 그 이유는 아래와 같다. 파드는 일시적이다. IP 주소 할당 시점이 노드에 파드를 스케줄링한 후 파드가 시작되기 바로 전이라 미리 알수 없다. 쿠버네티스는 수평 스케일링을 제공한다. 이 의미는 파드수와 IP에 상관없이 여러 파드가 동일한 서비.. 2022. 10. 21.
Kubernetes - deploy app tutorial - 출처: Kubernetes in action - 출처: https://kubernetes.io/docs/concepts/overview/components/ - 출처: https://preiner.medium.com/kubernetes%EC%9D%98-%EC%9D%B4%ED%95%B4-%EA%B0%9C%EB%85%90%EC%A0%95%EB%A6%AC-17245a0d5f4d - 앱 실행 일반적으로 쿠버네티스에 앱을 배포할때는 구성 요소를 기술한 JSON이나 YAML 매니페스트를 준비해야 하지만 첫번째 앱 배포 예제이므로 간단한 방법으로 배포해본다. 책에서는 "kubectl run" 명령어를 통해 레플리케이션 컨트롤러를 생성하여 파드 생성을 제어한다. 그러기 위해 명령어 옵션에 "--generator=r.. 2022. 10. 6.
아키텍처 - 서비스와 아키텍처 - 이 글은 로버트 C.마틴의 Clean Architecture를 기반으로 작성되었습니다. (가능하면 책을 읽어보는것을 추천한다.) - 개요 서비스 지향 아키텍처(SOA - Service Oriented Architecture)나 마이크로 서비스 아키텍처(MSA - Micro Service Architecture)라는 말을 들어봤을것이다. 단어만 언급해도 뭔가 전문가가 된것 같고, 심지어 단어 자체도 멋있다. 흔히 이런 아키텍처들의 장점으로 상호 결합을 완벽하게 분리한다거나, 개발 및 배포 독립성을 보장해준다는 문구를 본적이 있을것이다. 하지만 이 역시 진리의 케이스 바이 케이스이다. - 서비스 아키텍처 서비스를 분리한다는건 아키텍처측면에서 무엇인가를 하는것일까? 먼저 우리가 여태까지 "아키텍처"를 언급.. 2021. 2. 10.