애플리케이션 디자인

쿠버네티스의 Java 및 데이터베이스 애플리케이션을 사용한 서비스 검색

이 블로그에서는 간단한 Java 애플리케이션이 Kubernetes의 서비스 검색을 사용하여 데이터베이스와 통신하는 방법을 보여드립니다.

 Kubernetes Logo WildFly Logo

DC/OS에서 Java 및 데이터베이스 애플리케이션을 사용한 서비스 검색 에서 서비스 검색이 멀티 컨테이너 애플리케이션에 중요한 이유를 설명합니다. 이 블로그에서는 DC/OS에서 이를 수행하는 방법도 설명합니다.

애플리케이션 서버와 데이터베이스 서버의 단일 인스턴스를 사용하여 Kubernetes에서 이를 어떻게 수행할 수 있는지 알아보겠습니다. 이 블로그에서는 애플리케이션 서버에는 WildFly를, 데이터베이스에는 Couchbase를 사용합니다.

이 블로그에서는 다음과 같은 주요 단계를 사용합니다:

  • 쿠버네티스 원노드 클러스터 시작하기
  • 쿠버네티스 애플리케이션 정의
  • 애플리케이션 배포
  • 애플리케이션에 액세스

쿠버네티스 클러스터 시작

미니큐브 는 노트북의 가상 머신에서 단일 노드 Kubernetes 클러스터를 시작하는 가장 쉬운 방법입니다. 바이너리를 먼저 다운로드한 다음 설치해야 합니다.

전체 설치 지침은 다음에서 확인할 수 있습니다. github.com/kubernetes/minikube.

그리고 최신 릴리스 로 OSX에 설치할 수 있습니다:

또한 다음이 필요합니다. kubectl 를 설치해야 합니다. kubectl 설치 및 설정하기 에서 kubectl을 설치하는 방법에 대한 자세한 지침을 제공한다. OSX에서는 다음과 같이 설치할 수 있다:

이제 클러스터를 다음 이름으로 시작합니다:

그리고 kubectl 버전 명령은 kubectl 클라이언트 및 미니큐브 서버 버전에 대한 자세한 정보를 보여줍니다:

클러스터에 대한 자세한 내용은 다음을 사용하여 얻을 수 있습니다. kubectl 클러스터 정보 명령을 사용합니다:

쿠버네티스 애플리케이션 정의

애플리케이션 정의는 다음에서 정의됩니다. github.com/arun-gupta/kubernetes-java-sample/blob/master/service-discovery.yml. 다음으로 구성됩니다:

  • 카우치베이스 서비스
  • 단일 포드가 포함된 Couchbase 복제본 세트
  • 단일 포드가 포함된 WildFly 복제본 세트

핵심 부분은 COUCHBASE_URI 환경 변수는 Couchbase 서비스의 이름입니다. 이를 통해 WildFly에 배포된 애플리케이션이 서비스를 동적으로 검색하고 데이터베이스와 통신할 수 있습니다.

arungupta/couchbase:travel 도커 이미지는 다음을 사용하여 생성됩니다. github.com/arun-gupta/couchbase-javaee/blob/master/couchbase/Dockerfile.

arungupta/wildfly-couchbase-javaee:travel 도커 이미지는 다음을 사용하여 생성됩니다. github.com/arun-gupta/couchbase-javaee/blob/master/Dockerfile.

Java EE 애플리케이션은 데이터베이스 쿼리를 시작하기 전에 데이터베이스 초기화가 완료될 때까지 기다립니다. 이는 다음에서 확인할 수 있습니다. github.com/arun-gupta/couchbase-javaee/blob/master/src/main/java/org/couchbase/sample/javaee/Database.java#L25.

애플리케이션 배포

이 애플리케이션은 다음과 같이 배포할 수 있습니다:

서비스 및 복제본 세트 목록은 다음 명령을 사용하여 표시할 수 있습니다. kubectl get svc,rs:

Couchbase의 단일 복제본에 대한 로그는 다음 명령을 사용하여 얻을 수 있습니다. kubectl 로그 rs/couchbase-rs:

WildFly 복제본 세트에 대한 로그는 다음 명령을 사용하여 확인할 수 있습니다. kubectl 로그 RS/WILDFLY-RS:

애플리케이션 액세스

그리고 kubectl 프록시 명령은 쿠버네티스 API 서버에 대한 프록시를 시작합니다. 애플리케이션에 액세스하기 위해 Kubernetes 프록시를 시작해 보겠습니다:

다음을 사용하여 WildFly 복제본 세트를 서비스로 노출합니다:

서비스 목록은 다음을 사용하여 다시 볼 수 있습니다. kubectl get svc 명령을 사용합니다:

이제 애플리케이션은 다음 주소에서 액세스할 수 있습니다:

형식이 지정된 출력은 다음과 같습니다:

이제 복제본 세트를 확장하여 새 파드를 Couchbase 서비스의 일부로 추가할 수 있습니다. 기존 파드는 종료되거나 일정이 변경될 수 있습니다. 그러나 Java EE 애플리케이션은 논리적 이름을 사용하여 데이터베이스 서비스에 계속 액세스합니다.

이 블로그에서는 간단한 Java 애플리케이션이 Kubernetes의 서비스 검색을 사용하여 데이터베이스와 통신하는 방법을 보여드렸습니다.

자세한 내용은 여기에서 확인하세요:

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

Author

Posted by 아룬 굽타

아룬 굽타는 Couchbase의 개발자 지원 담당 부사장입니다. 그는 Sun, Oracle, Red Hat에서 10년 이상 개발자 커뮤니티를 구축하고 이끌었습니다. 그는 콘텐츠, 마케팅 캠페인 및 프로그램의 전략, 계획 및 실행을 개발 및 실행하는 교차 기능 팀을 이끄는 데 있어 깊은 전문성을 보유하고 있습니다. 그 전에는 Sun에서 엔지니어링 팀을 이끌었으며 Java EE 팀의 창립 멤버입니다. Gupta는 기술에 관한 블로그 게시물을 2,000개 이상 작성했습니다. 40여 개국에서 수많은 주제에 대해 광범위한 강연 경험을 가지고 있으며, 3년 연속 JavaOne Rock Star로 선정되었습니다. 또한 미국에서 Devoxx4Kids 지부를 설립하여 어린이를 대상으로 한 기술 교육을 지속적으로 장려하고 있습니다. 기술에 관한 여러 권의 책을 저술했으며, 열렬한 마라토너이자 지구를 횡단하는 사람, Java 챔피언, JUG 리더, NetBeans 드림팀 멤버, Docker 캡틴이기도 한 그는 @arungupta에서 쉽게 만나볼 수 있습니다.

댓글 하나

  1. [...] Kubernetes의 Java 및 데이터베이스 애플리케이션을 사용한 서비스 검색 [...]

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.