之前在网上搜了很久,基本上都是自己维护的swarm集群,并不是使用的阿里云的容器服务功能,所以基本都不能使用,下面是我最终可用的配置,但是无法使用阿里云的蓝绿发布来发布eureka,不过这东西大多也都是人工维护
eureka配置
server:
port: 8082
eureka:
server:
enable-self-preservation: false
eviction-interval-timer-in-ms: 4000
client:
service-url:
defaultZone: ${ADDITIONAL_EUREKA_SERVER}
instance:
lease-expiration-duration-in-seconds: 5
lease-renewal-interval-in-seconds: 5
spring:
application:
name: eureka-server
容器服务编排模板
由于容器集群内可能有多台机器,所以部署的eureka不能确定在哪台机器而且不能准确获得ip,使用阿里云容器服务的关键字hostname来设定地址,这样docker会根据这个获取地址传入项目中
eureka1:
image: registry-vpc.cn-beijing.aliyuncs.com/wzm/spring-cloud-netfilx-eureka-demo:20171231191741
hostname: eureka1
ports:
- "8082:8082"
environment:
- ADDITIONAL_EUREKA_SERVER=http://eureka2:8082/eureka/
eureka2:
image: registry-vpc.cn-beijing.aliyuncs.com/wzm/spring-cloud-netfilx-eureka-demo:20171231191741
hostname: eureka2
ports:
- "8082:8082"
environment:
- ADDITIONAL_EUREKA_SERVER=http://eureka1:8082/eureka/
源码地址
这个项目内的docker-compose.yml就是给容器服务的编排模板,自己维护的docker不一定能使用
https://github.com/EndOfMaster/spring-cloud-demo/tree/master/spring-cloud-netflix-eureka-server-docker