Kubernetes Discovery Server 설정 관련 Gateway Server 프로젝트 변경 사항

날아올라돼지야·2024년 9월 1일
0

이번 강의에서는 Kubernetes Discovery Server와의 통합을 위해 Gateway Server 프로젝트를 수정하겠습니다. 다음은 단계별로 변경해야 할 사항들입니다.

1. pom.xml 파일 수정

  • Eureka 의존성 제거:
    • Spring Cloud starter Netflix Eureka Client 의존성을 제거하고, 대신 Spring Cloud starter Kubernetes Discovery Client 의존성을 추가합니다.
  • 태그 업데이트:
    • 태그 이름을 s14에서 s17로 업데이트합니다.
  • Maven 변경 사항 로드 및 빌드:
    • Maven 변경 사항을 로드한 후 빌드를 실행합니다.

2. GatewayServerApplication 클래스 수정

  • @EnableDiscoveryClient 애노테이션 추가:
    • GatewayserverApplication 클래스에 @EnableDiscoveryClient 애노테이션을 추가합니다.
  • 라우팅 구성 수정:
    • 기존에 uri 설정에 사용된 lb://ACCOUNTS, lb://LOANS, lb://CARDS와 같은 값들을 실제 서비스 URL로 대체합니다.
    • 예:
      • lb://ACCOUNTShttp://accounts:8080으로 변경
      • lb://LOANShttp://loans:8090으로 변경
      • lb://CARDShttp://cards:9000으로 변경
    • lb는 Load Balancer를 의미하지만, 우리는 클라이언트 측에서의 로드 밸런싱을 피하고자 이 값을 실제 서비스 URL로 변경합니다.

3. application.yml 파일 수정

  • Eureka 설정 제거:
    • Eureka 서버와 관련된 설정(discovery locator enabled, lowercase service ID as true)을 제거합니다.
  • Kubernetes Discovery 설정 추가:
    • spring.cloud.kubernetes.discovery.enabled=true 설정을 추가하여 Kubernetes 클러스터 내의 Discovery Server를 사용하도록 설정합니다.
    • spring.cloud.kubernetes.discovery.all-namespaces=true 설정을 추가하여 모든 네임스페이스에서 서비스를 탐색할 수 있도록 합니다.
  • Health Indicator 설정:
    • spring.cloud.discovery.client.health-indicator.enabled=false 설정을 추가하여 Kubernetes Discovery 클라이언트가 생성하는 기본 Health Indicator와의 충돌을 피합니다.
    • 이는 현재 이슈 해결을 위해 필요하며, 나중에 해당 문제가 해결되면 이 설정을 제거할 수 있습니다.

4. Docker 이미지 생성 및 Kubernetes 클러스터 설정

  • Docker 이미지 생성:
    • 모든 마이크로서비스에 대해 s17 태그를 사용하여 Docker 이미지를 생성합니다.
  • Kubernetes 클러스터 설정:
    • Kafka, Keycloak, Grafana, Prometheus와 같은 모든 필수 구성 요소를 포함한 Kubernetes 클러스터를 설정합니다.
  • Helm 차트 업데이트:
    • Easy Bank Helm 차트를 최신 태그인 s17로 업데이트하고, 이 Helm 차트를 사용하여 모든 마이크로서비스를 Kubernetes 클러스터에 배포합니다.

요약

이번 강의에서는 Gateway Server 프로젝트를 Kubernetes Discovery Server와 통합하기 위해 필요한 모든 코드를 수정했습니다. 이는 클라이언트 측에서의 로드 밸런싱을 제거하고, 대신 Kubernetes 클러스터의 Discovery Server를 통해 서비스 탐색과 로드 밸런싱을 수행하도록 합니다. 또한, 모든 마이크로서비스의 Docker 이미지를 새 태그로 생성하고 Kubernetes 클러스터를 설정한 후, Helm 차트를 사용하여 배포를 진행할 예정입니다.

감사합니다.

profile
무슨 생각하며 사니

0개의 댓글