Как правильно настроить Eureka Server и Netflix Ribbon с помощью сервисов Kubernetes в кластере - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь настроить сервер Eureka и использовать ленту Netflix для балансировки нагрузки на стороне клиента, и я использовал шлюз API Spring Cloud для перенаправления запроса.API-шлюз работает нормально, когда я запускаю все микросервисы независимо, поскольку приложение Java и лента выполняют балансировку нагрузки на стороне клиента.

    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
        return builder.routes()
                .route("tracker", r -> r.path("/**")
                .uri("lb://tracker") // Client side load balancing using Netflix Ribbon
                )
                .build();
    }

и в моем локальном API Eureka Server отображается следующее:

Экземпляры, зарегистрированные в настоящее время в Eureka enter image description here

Но когда я пытаюсь организовать это с помощью Kubernetes , каждый микросервис не может правильно зарегистрировать их на сервере Eureka, из-за чего шлюз API не может перенаправить запрос.

Это экран Eurekaкогда я запускаю Tracker Microservice в локальной сети.

enter image description here

Я хочу знать, нужна ли мне какая-либо дополнительная конфигурация для того, чтобы эта инфраструктура работала или

Прикрепление файла workloads.yaml и services.yaml для справки.

https://github.com/neerajjain92/vehicle-position-simulator/tree/master/kubernetes

Фрагмент из workloads.yml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: eureka
spec:
  selector:
    matchLabels:
      app: eureka
  replicas: 1
  template:
    metadata:
      labels:
        app: eureka
    spec:
      containers:
        - name: eureka
          image: neerajjain/eureka

Отрывок из services.yaml

apiVersion: v1
kind: Service
metadata:
  name: gps-tracker-eureka-server
spec:
  selector:
    app: eureka

  ports:
    - port: 8761
      nodePort: 30040

  type: NodePort
...