Я собираю доказательство концепции, чтобы помочь выявить ошибки с использованием Spring Boot / Netflix OSS и Kubernetes вместе. Это также доказывает наличие связанных технологий, таких как Prometheus и Graphana.
У меня есть настройка службы Eureka, которая без проблем запускается в моем кластере Kubernetes. Это называется обнаружением и при добавлении в K8 с использованием
For my config server, I am trying to use Eureka based on a logical URL so in my bootstrap.yml I have
server:
port: 8889
eureka:
instance:
hostname: configserver
client:
registerWithEureka: true
fetchRegistry: true
serviceUrl:
defaultZone: http://discovery:8761/eureka/
spring:
cloud:
config:
server:
git:
uri: https://github.com/xyz/microservice-config
и я начинаю это использовать
kubectl run configserver --image=xyz/config-microservice --replicas=1 --port=8889
Эта служба завершает работу с именем configserver-3481062421-tmv4d. Затем я вижу исключения в журналах сервера конфигурации, поскольку он пытается найти экземпляр eureka и не может.
У меня такая же настройка для этого, используя docker-compose локально со ссылками, и он без проблем запускает различные контейнеры.
discovery:
image: xyz/discovery-microservice
ports:
- "8761:8761"
configserver:
image: xyz/config-microservice
ports:
- "8888:8888"
links:
- discovery
Как я могу настроить что-то вроде eureka.client.serviceUri, чтобы мои микросервисы могли определять местонахождение своих сверстников, не зная фиксированных IP-адресов в кластере K8?